Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.installer / pom.xml @ 40538

History | View | Annotate | Download (9.05 KB)

1
<?xml version="1.0" encoding="UTF-8"?>
2
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0          http://maven.apache.org/xsd/maven-4.0.0.xsd">
3

    
4
        <modelVersion>4.0.0</modelVersion>
5
        <groupId>org.gvsig</groupId>
6
        <artifactId>org.gvsig.desktop.installer</artifactId>
7
        <version>1.0.0</version>
8
        <packaging>pom</packaging>
9
        <name>${project.artifactId}</name>
10

    
11
  <build>
12
  
13
     <pluginManagement>
14
        <plugins>
15
        
16
          <plugin>
17
            <groupId>org.codehaus.gmaven</groupId>
18
            <artifactId>gmaven-plugin</artifactId>
19
            <version>1.4</version>
20
          </plugin>
21
          
22
          <plugin>
23
            <groupId>org.codehaus.mojo</groupId>
24
            <artifactId>properties-maven-plugin</artifactId>
25
            <version>1.0-alpha-2</version>
26
          </plugin>
27
                            
28
        </plugins>
29
     </pluginManagement>
30
  
31
      <plugins>
32
          <plugin>
33
              <groupId>org.codehaus.mojo</groupId>
34
              <artifactId>properties-maven-plugin</artifactId>
35
              <executions>
36
                  <execution>
37
                      <phase>install</phase>
38
                      <goals>
39
                          <goal>read-project-properties</goal>
40
                      </goals>
41
                      <configuration>
42
                          <files>
43
                                        <!-- Define gvsig.product.folder.path in this property -->
44
                                        <file>${user.home}/.gvsig-devel.properties</file>
45
                                        <file>${project.basedir}/gvsig-devel.properties</file>
46
                          </files>
47
                          <quiet>true</quiet>
48
                      </configuration>
49
                  </execution>
50
              </executions>
51
          </plugin>
52
          
53
          <plugin>
54
              <groupId>org.codehaus.gmaven</groupId>
55
              <artifactId>gmaven-plugin</artifactId>
56
                                <inherited>false</inherited>
57
              <executions>
58
                <execution>
59
                  <id>release</id>
60
                  <phase>install</phase>
61
                  <goals>
62
                    <goal>execute</goal>
63
                  </goals>
64
                  <configuration>
65
                    <source><![CDATA[
66
  ant = new AntBuilder()
67
  log.info("For create windows launchers launch4j is requiered in the PATH. In linux link launch4j to launch4jc.")
68
  log.info("For create installer InstallJammer is required in the PATH.")
69

    
70
  installation_folder = project.basedir.getAbsolutePath()+"/target/product/gvsig-desktop"
71
  pool_folder = project.basedir.getAbsolutePath()+"/target/pool.d"
72
  new File(installation_folder).mkdirs()
73
  new File(pool_folder,"pool").mkdirs()
74

    
75
  gvsig_product_folder_path = project.properties["gvsig.product.folder.path"]
76

    
77

    
78
  log.info("Getting a local copy of product folder...")
79
  ant.copy( todir: installation_folder ) {
80
    fileset( dir: gvsig_product_folder_path )
81
  }
82
  gvsig_product_folder_path = installation_folder 
83

    
84

    
85
  log.info("Populate the pool folder...")
86
  ant.move( todir: pool_folder + "/pool" ) {
87
  fileset( dir: installation_folder + "/install/" )
88
  }
89
  new File(installation_folder,"install").mkdirs()
90

    
91
  log.info("Preparing basic package set (gvspks)...")
92
  gvspks_folder = new File(project.basedir,"target/gvspks")
93
  gvspks_folder.mkdirs()                    
94
  filenames = new FileNameFinder().getFileNames(pool_folder,"**/*.gvspkg")
95
  for( filename in filenames ) {
96
    file = new File(filename)
97
    ant.copy(file:filename, todir:gvspks_folder.getAbsolutePath())
98
  }            
99

    
100
  log.info("Finding andami updater jar...")
101
  org_gvsig_andami_updater_jar = new FileNameFinder().getFileNames(
102
    gvsig_product_folder_path+"/lib",
103
    'org.gvsig.andami.updater-*.jar'
104
  )[0]
105
  org_gvsig_andami_updater_jar = new File(org_gvsig_andami_updater_jar).getName()
106
  log.info("Found andami updater :"+org_gvsig_andami_updater_jar)
107

    
108
  File file = new File(gvsig_product_folder_path + "/gvSIG/extensiones/org.gvsig.app.mainplugin/package.info")
109
  log.info("Loading package.info - " + file.getAbsolutePath())
110
  pakageinfo = new Properties()
111
  pakageinfo.load(file.newDataInputStream())
112

    
113
  log.info("Creating gvsig-desktop.exe windows launcher...")
114
  source = project.basedir.getAbsolutePath()+"/src/main/launch4j/gvsig-desktop.xml"
115
  target = project.basedir.getAbsolutePath()+"/target/gvsig-desktop.xml"
116
  s = new File(source).text
117
  s = s.replaceAll("@@gvsig.product.folder.path@@", gvsig_product_folder_path)
118
  s = s.replaceAll("@@org.gvsig.andami.updater.jar@@", org_gvsig_andami_updater_jar)
119
  s = s.replaceAll("@@version@@", pakageinfo.getProperty("version")+"."+pakageinfo.getProperty("buildNumber"))
120
  new File(target).write(s)
121
  log.info("Created "+target)
122
  ant.exec( command:"launch4jc "+ target )
123
  log.info("Created gvsig-desktop.exe windows launcher.")
124

    
125
  log.info("Creating gvsig-desktop-devel.exe windows launcher...")
126
  source = project.basedir.getAbsolutePath()+"/src/main/launch4j/gvsig-desktop-devel.xml"
127
  target = project.basedir.getAbsolutePath()+"/target/gvsig-desktop-devel.xml"
128
  s = new File(source).text
129
  s = s.replaceAll("@@gvsig.product.folder.path@@", gvsig_product_folder_path)
130
  s = s.replaceAll("@@org.gvsig.andami.updater.jar@@", org_gvsig_andami_updater_jar)
131
  s = s.replaceAll("@@version@@", pakageinfo.getProperty("version")+"."+pakageinfo.getProperty("buildNumber"))
132
  new File(target).write(s)
133
  log.info("Created "+target)
134
  ant.exec( command:"launch4jc "+ target )
135
  log.info("Created gvsig-desktop-devel.exe windows launcher")
136

    
137
  log.info("Creating gvsig-package-installer.exe windows launcher...")
138
  source = project.basedir.getAbsolutePath()+"/src/main/launch4j/gvsig-package-installer.xml"
139
  target = project.basedir.getAbsolutePath()+"/target/gvsig-package-installer.xml"
140
  s = new File(source).text
141
  s = s.replaceAll("@@gvsig.product.folder.path@@", gvsig_product_folder_path)
142
  s = s.replaceAll("@@org.gvsig.andami.updater.jar@@", org_gvsig_andami_updater_jar)
143
  s = s.replaceAll("@@version@@", pakageinfo.getProperty("version")+"."+pakageinfo.getProperty("buildNumber"))
144
  new File(target).write(s)
145
  log.info("Created "+target)
146
  ant.exec( command:"launch4jc "+ target )
147
  log.info("Created gvsig-package-installer.exe windows launcher")
148

    
149
  jre_pkg_name = "gvSIG-desktop-2.0.0-jre_6_windows_i586-1.6.26-0-devel-win-x86-j1_6.gvspkg"
150
  url = "http://downloads.gvsig.org/download/gvsig-desktop/pool/jre_6_windows_i586/" + jre_pkg_name
151
  target = project.basedir.getAbsolutePath() + "/target/" + jre_pkg_name
152
  if(! new File(target).exists() ) {                                            
153
    log.info("Downloading windows jre plugin")
154
    ant.get(src: url, dest: target)
155
  } else {
156
    log.info("Skip download of jre, it exist in local filesystem.")
157
  }
158

    
159
  source = project.basedir.getAbsolutePath() + "/target/" + jre_pkg_name
160
  target = gvsig_product_folder_path + "/gvSIG/extensiones/"
161
  log.info("Installing plugin windows jre plugin to " + target + "...")
162
  ant.unzip(src: source, dest: target)
163
  log.info("jre installed.")
164

    
165
  log.info("Building zip installer...")
166
  source  = project.basedir.getAbsolutePath()+"/target/product"
167
  target  = project.basedir.getAbsolutePath() + 
168
    "/target/gvSIG-desktop-" + 
169
    pakageinfo.getProperty("version") + "-" + 
170
    pakageinfo.getProperty("buildNumber") + "-" +
171
    pakageinfo.getProperty("state") + "-all-x86-online.zip"
172
  ant.zip(destfile: target, basedir: source)
173

    
174
  log.info("Building pool zip...")
175
  source  = project.basedir.getAbsolutePath()+"/target/pool.d"
176
  target  = project.basedir.getAbsolutePath() + 
177
    "/target/gvSIG-desktop-" + 
178
    pakageinfo.getProperty("version") + "-" + 
179
    pakageinfo.getProperty("buildNumber") + "-" +
180
    pakageinfo.getProperty("state") + "-all-all-pool.zip"
181
  ant.zip(destfile: target, basedir: source)
182

    
183
  log.info("Building basic package-set (gvspks)...")
184
  source  = project.basedir.getAbsolutePath()+"/target/gvspks"
185
  target  = project.basedir.getAbsolutePath() + 
186
    "/target/gvSIG-desktop-" + 
187
    pakageinfo.getProperty("version") + "-" + 
188
    pakageinfo.getProperty("buildNumber") + "-" +
189
    pakageinfo.getProperty("state") + "-all-all.gvspks"
190
  ant.zip(destfile: target, basedir: source)
191

    
192

    
193
  cmd = [ "installjammer" , 
194
    "--output-dir", project.basedir.getAbsolutePath() + "/target",
195
    "-DBaseDir", gvsig_product_folder_path,
196
    "-DVersion", pakageinfo.getProperty("version"),
197
    "-DInstallVersion", pakageinfo.getProperty("version"),
198
    "-DDevelState", pakageinfo.getProperty("state"),
199
    "-DBuildVersion", pakageinfo.getProperty("buildNumber"), 
200
    "--build-for-release",
201
    "--build-dir", project.basedir.getAbsolutePath() + "/target/installjammer", 
202
    "--build-log-file", project.basedir.getAbsolutePath() + "/target/installjammer.log",
203
    "--verbose",
204
    "--build",
205
    project.basedir.getAbsolutePath() + "/src/main/installjammer/gvsig-standard-installer.mpi"
206
  ]
207
  log.info("Launching InstallJammer - " + cmd.join(" ") )
208
  ant.exec( command: cmd.join(" ") )
209

    
210
                    ]]></source>
211
                  </configuration>
212
                </execution>
213
              </executions>
214
          </plugin>
215
      </plugins>
216
  </build>
217

    
218
</project>