Statistics
| Revision:

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

History | View | Annotate | Download (10 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>${env.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
  // println project.metaClass.methods*.name.sort().unique()  
67
  
68
  ant = new AntBuilder()
69
  log.info("For create windows launchers launch4j is requiered in the PATH. In linux link launch4j to launch4jc.")
70
  log.info("For create installer InstallJammer is required in the PATH.")
71

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

    
77
  gvsig_product_folder_path = project.properties["gvsig.product.folder.path"]
78

    
79

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

    
86

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

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

    
103
  log.info("Finding andami updater jar...")
104
  org_gvsig_andami_updater_jar = new FileNameFinder().getFileNames(
105
    gvsig_product_folder_path+"/lib",
106
    'org.gvsig.andami.updater-*.jar'
107
  )[0]
108
  if( org_gvsig_andami_updater_jar == null ) {
109
    log.error("Can't find andami updater jar")
110
    assert false
111
  }
112
  org_gvsig_andami_updater_jar = new File(org_gvsig_andami_updater_jar).getName()
113
  log.info("Found andami updater :"+org_gvsig_andami_updater_jar)
114

    
115
  File file = new File(gvsig_product_folder_path + "/gvSIG/extensiones/org.gvsig.app.mainplugin/package.info")
116
  log.info("Loading package.info - " + file.getAbsolutePath())
117
  pakageinfo = new Properties()
118
  pakageinfo.load(file.newDataInputStream())
119

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

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

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

    
156
  jre_pkg_name = "gvSIG-desktop-2.0.0-jre_6_windows_i586-1.6.26-0-devel-win-x86-j1_6.gvspkg"
157
  url = "http://downloads.gvsig.org/download/gvsig-desktop/pool/jre_6_windows_i586/" + jre_pkg_name
158
  target = project.basedir.getAbsolutePath() + "/target/" + jre_pkg_name
159
  if(! new File(target).exists() ) {
160
          if( project.properties["jre.path"]!=null ) {
161
                  if( project.properties["jre.path"].endsWith(".gvspkg") ) {
162
                          source = project.properties["jre.path"]
163
                  } else {
164
                          source = project.properties["jre.path"] + "/" + jre_pkg_name
165
                  }
166
                if (source.startsWith("~" + File.separator)) {
167
                    source = System.getenv().get("HOME") + source.substring(1);
168
                }
169
                  if( ! new File(source).exists() ) {
170
                        log.info("jre specified in jre.path variable not found - "+source)
171
                    log.info("Downloading windows jre plugin")
172
                    ant.get(src: url, dest: target)
173
                } else {
174
                    log.info("Copy windows jre plugin")
175
                    ant.copy(file:source, todir:project.basedir.getAbsolutePath() + "/target/")
176
                }                  
177
          } else {
178
            log.info("Downloading windows jre plugin")
179
            ant.get(src: url, dest: target)
180
          }                                   
181
  } else {
182
    log.info("Skip download of jre, it exist in local filesystem.")
183
  }
184

    
185
  source = project.basedir.getAbsolutePath() + "/target/" + jre_pkg_name
186
  target = gvsig_product_folder_path + "/gvSIG/extensiones/"
187
  log.info("Installing plugin windows jre plugin to " + target + "...")
188
  ant.unzip(src: source, dest: target)
189
  log.info("jre installed.")
190

    
191
  log.info("Building zip installer...")
192
  source  = project.basedir.getAbsolutePath()+"/target/product"
193
  target  = project.basedir.getAbsolutePath() + 
194
    "/target/gvSIG-desktop-" + 
195
    pakageinfo.getProperty("version") + "-" + 
196
    pakageinfo.getProperty("buildNumber") + "-" +
197
    pakageinfo.getProperty("state") + "-all-x86-online.zip"
198
  ant.zip(destfile: target, basedir: source)
199

    
200
  log.info("Building pool zip...")
201
  source  = project.basedir.getAbsolutePath()+"/target/pool.d"
202
  target  = project.basedir.getAbsolutePath() + 
203
    "/target/gvSIG-desktop-" + 
204
    pakageinfo.getProperty("version") + "-" + 
205
    pakageinfo.getProperty("buildNumber") + "-" +
206
    pakageinfo.getProperty("state") + "-all-all-pool.zip"
207
  ant.zip(destfile: target, basedir: source)
208

    
209
  log.info("Building basic package-set (gvspks)...")
210
  source  = project.basedir.getAbsolutePath()+"/target/gvspks"
211
  target  = project.basedir.getAbsolutePath() + 
212
    "/target/gvSIG-desktop-" + 
213
    pakageinfo.getProperty("version") + "-" + 
214
    pakageinfo.getProperty("buildNumber") + "-" +
215
    pakageinfo.getProperty("state") + "-all-all.gvspks"
216
  ant.zip(destfile: target, basedir: source)
217

    
218

    
219
  cmd = [ "installjammer" , 
220
    "--output-dir", project.basedir.getAbsolutePath() + "/target",
221
    "-DBaseDir", gvsig_product_folder_path,
222
    "-DVersion", pakageinfo.getProperty("version"),
223
    "-DInstallVersion", pakageinfo.getProperty("version"),
224
    "-DDevelState", pakageinfo.getProperty("state"),
225
    "-DBuildVersion", pakageinfo.getProperty("buildNumber"), 
226
    "--build-for-release",
227
    "--build-dir", project.basedir.getAbsolutePath() + "/target/installjammer", 
228
    "--build-log-file", project.basedir.getAbsolutePath() + "/target/installjammer.log",
229
    "--verbose",
230
    "--build",
231
    project.basedir.getAbsolutePath() + "/src/main/installjammer/gvsig-standard-installer.mpi"
232
  ]
233
  log.info("Launching InstallJammer - " + cmd.join(" ") )
234
  ant.exec( command: cmd.join(" ") )
235

    
236
                    ]]></source>
237
                  </configuration>
238
                </execution>
239
              </executions>
240
          </plugin>
241
      </plugins>
242
  </build>
243

    
244
</project>