|
29 | 29 | * the terms of any one of the MPL, the GPL or the LGPL. |
30 | 30 | --> |
31 | 31 |
|
32 | | -<project name="echo3-extras" default="dist" basedir="."> |
| 32 | +<project name="echo3-extras" default="dist" basedir="." xmlns:artifact="antlib:org.apache.maven.artifact.ant"> |
33 | 33 |
|
34 | 34 | <property environment="env"/> |
35 | 35 | <property file="custom-ant.properties"/> |
|
46 | 46 | <include name="**/*stylesheet"/> |
47 | 47 | </patternset> |
48 | 48 |
|
| 49 | + <target name="-check.dependencies"> |
| 50 | + <available file="${dir.lib}/echo3-app-${echo.version}.jar" property="dependencies.present"/> |
| 51 | + </target> |
| 52 | + |
| 53 | + <target name="mvn.dependencies" depends="-mvn.inittasks" |
| 54 | + description="Fetches the required dependencies from Maven Central into the lib dir"> |
| 55 | + |
| 56 | + <artifact:dependencies filesetId="dependency.fileset"> |
| 57 | + <dependency groupId="com.nextapp" artifactId="echo3-app" version="${echo.version}"/> |
| 58 | + <dependency groupId="com.nextapp" artifactId="echo3-app" version="${echo.version}" classifier="sources"/> |
| 59 | + <dependency groupId="com.nextapp" artifactId="echo3-webcontainer" version="${echo.version}"/> |
| 60 | + <dependency groupId="com.nextapp" artifactId="echo3-webcontainer" version="${echo.version}" classifier="sources"/> |
| 61 | + <dependency groupId="javax.servlet" artifactId="servlet-api" version="2.4"/> |
| 62 | + <dependency groupId="javax.servlet" artifactId="servlet-api" version="2.4" classifier="sources"/> |
| 63 | + <dependency groupId="junit" artifactId="junit" version="4.11" scope="test"/> |
| 64 | + <dependency groupId="junit" artifactId="junit" version="4.11" scope="test" classifier="sources"/> |
| 65 | + </artifact:dependencies> |
| 66 | + |
| 67 | + <copy todir="${dir.lib}"> |
| 68 | + <fileset refid="dependency.fileset" /> |
| 69 | + <mapper type="flatten" /> |
| 70 | + </copy> |
| 71 | + </target> |
| 72 | + |
| 73 | + <target name="dependencies" depends="-check.dependencies" unless="dependencies.present" |
| 74 | + description="Spot checks for dependency JARs availability and fetches via Maven Central if required"> |
| 75 | + <antcall target="mvn.dependencies"/> |
| 76 | + </target> |
| 77 | + |
49 | 78 | <!-- Minimize --> |
50 | 79 | <target name="minimize" depends="clean" description="Removes all non-essential files, including Eclipse temporary/build output files"> |
51 | 80 | <delete dir="${dir.temp}"/> |
| 81 | + <delete dir="${dir.lib}"/> |
52 | 82 | </target> |
53 | 83 |
|
54 | 84 | <!-- Clean --> |
|
61 | 91 | <delete dir="${dir.release}"/> |
62 | 92 | </target> |
63 | 93 |
|
64 | | - <target name="compile.app" description="Compile Application source files"> |
| 94 | + <target name="compile.app" description="Compile Application source files" depends="dependencies"> |
65 | 95 | <mkdir dir="${dir.build.server-java.app}"/> |
66 | 96 | <javac srcdir="${dir.src.server-java.app}" destdir="${dir.build.server-java.app}" |
67 | 97 | debug="${debug}" deprecation="yes" source="${ant.build.javac.source}" target="${ant.build.javac.target}"> |
|
87 | 117 | <javac srcdir="${dir.src.server-java.app-test}" destdir="${dir.build.server-java.app-test}" |
88 | 118 | debug="${debug}" deprecation="yes" source="${ant.build.javac.source}" target="${ant.build.javac.target}"> |
89 | 119 | <classpath> |
| 120 | + <pathelement path="${dir.dist.lib}/${jarfile.extras.app}"/> |
90 | 121 | <pathelement path="${echo3.app.lib.jar}"/> |
91 | 122 | <pathelement path="${dir.dist.lib}/${jarfile.echo.app}"/> |
92 | 123 | </classpath> |
|
103 | 134 | <junit printsummary="yes" haltonfailure="no"> |
104 | 135 | <classpath> |
105 | 136 | <pathelement path="${echo3.app.lib.jar}"/> |
| 137 | + <pathelement path="${dir.build.server-java.app}"/> |
106 | 138 | <pathelement path="${dir.build.server-java.app-test}"/> |
107 | 139 | <pathelement path="${dir.dist.lib}/${jarfile.echo.app}"/> |
108 | 140 | </classpath> |
|
282 | 314 | <target name="doc.private" |
283 | 315 | depends="doc.app.private, doc.webcontainer.private"/> |
284 | 316 |
|
285 | | - <target name="doc" |
| 317 | + <target name="doc.jars" depends="doc.public" description="Builds the *-javadoc.jar files"> |
| 318 | + <jar jarfile="${dir.dist.lib}/${docfile.extras.app}" basedir="${dir.javadoc.app.public}"/> |
| 319 | + <jar jarfile="${dir.dist.lib}/${docfile.extras.webcontainer}" basedir="${dir.javadoc.webcontainer.public}"/> |
| 320 | + </target> |
| 321 | + |
| 322 | + <target name="doc" |
286 | 323 | depends="doc.app, doc.app.private, doc.webcontainer, doc.webcontainer.private"/> |
287 | | - |
| 324 | + |
288 | 325 | <target name="release" depends="clean, dist, dist.testapp, doc.public"> |
289 | 326 | <mkdir dir="${dir.build.server-java.release.root}"/> |
290 | 327 | <mkdir dir="${dir.build.server-java.release.root}/SourceCode"/> |
|
342 | 379 | <delete file="${dir.release}/${tarfile.release}"/> |
343 | 380 | </target> |
344 | 381 |
|
345 | | - <target name="mvn-install" depends="dist" description="Installs the jar into the local maven repository"> |
346 | | - <condition property="onWindows"> |
347 | | - <os family="windows"/> |
348 | | - </condition> |
349 | | - <antcall target="mvn-install-win"/> |
350 | | - <antcall target="mvn-install-unix"/> |
351 | | - </target> |
352 | | - |
353 | | - <target name="mvn-install-win" |
354 | | - description="Installs the jars into the local maven repository (windows environment)" |
355 | | - if="onWindows"> |
356 | | - <exec executable="cmd"> |
357 | | - <arg value="/c"/> |
358 | | - <arg value="mvn install:install-file -DpomFile=resource/maven/echo3extras-app-pom.xml -Dfile=dist${file.separator}lib${file.separator}${jarfile.extras.app}"/> |
359 | | - </exec> |
360 | | - <exec executable="cmd"> |
361 | | - <arg value="/c"/> |
362 | | - <arg value="mvn install:install-file -DpomFile=resource/maven/echo3-app-pom.xml -Dfile=dist${file.separator}lib${file.separator}${srcfile.extras.app} -Dclassifier=sources"/> |
363 | | - </exec> |
364 | | - <exec executable="cmd"> |
365 | | - <arg value="/c"/> |
366 | | - <arg value="mvn install:install-file -DpomFile=resource/maven/echo3extras-webcontainer-pom.xml -Dfile=dist${file.separator}lib${file.separator}${jarfile.extras.webcontainer}"/> |
367 | | - </exec> |
368 | | - <exec executable="cmd"> |
369 | | - <arg value="/c"/> |
370 | | - <arg value="mvn install:install-file -DpomFile=resource/maven/echo3-app-pom.xml -Dfile=dist${file.separator}lib${file.separator}${srcfile.extras.webcontainer} -Dclassifier=sources"/> |
371 | | - </exec> |
| 382 | + <target name="-mvn.generate.pom"> |
| 383 | + <mkdir dir="${dir.build}/maven-pom"/> |
| 384 | + <copy todir="${dir.build}/maven-pom" filtering="true" overwrite="true"> |
| 385 | + <fileset dir="resource/maven" includes="*.xml"/> |
| 386 | + <filterset id="maven.pom.filters" begintoken="$${" endtoken="}"> |
| 387 | + <filter token="release.version" value="${release.version}"/> |
| 388 | + <filter token="echo.version" value="${echo.version}"/> |
| 389 | + </filterset> |
| 390 | + </copy> |
372 | 391 | </target> |
373 | | - |
374 | | - <target name="mvn-install-unix" |
375 | | - description="Installs the jar into the local maven repository (unix environment)" |
376 | | - unless="onWindows"> |
377 | | - <exec executable="mvn"> |
378 | | - <arg value="install:install-file"/> |
379 | | - <arg value="-DpomFile=resource/maven/echo3extras-app-pom.xml"/> |
380 | | - <arg value="-Dfile=dist${file.separator}lib${file.separator}${jarfile.extras.app}"/> |
381 | | - </exec> |
382 | | - <exec executable="mvn"> |
383 | | - <arg value="install:install-file"/> |
384 | | - <arg value="-DpomFile=resource/maven/echo3extras-app-pom.xml"/> |
385 | | - <arg value="-Dclassifier=sources"/> |
386 | | - <arg value="-Dfile=dist${file.separator}lib${file.separator}${srcfile.extras.app}"/> |
387 | | - </exec> |
388 | | - <exec executable="mvn"> |
389 | | - <arg value="install:install-file"/> |
390 | | - <arg value="-DpomFile=resource/maven/echo3extras-webcontainer-pom.xml"/> |
391 | | - <arg value="-Dfile=dist${file.separator}lib${file.separator}${jarfile.extras.webcontainer}"/> |
392 | | - </exec> |
393 | | - <exec executable="mvn"> |
394 | | - <arg value="install:install-file"/> |
395 | | - <arg value="-DpomFile=resource/maven/echo3extras-webcontainer-pom.xml"/> |
396 | | - <arg value="-Dclassifier=sources"/> |
397 | | - <arg value="-Dfile=dist${file.separator}lib${file.separator}${srcfile.extras.webcontainer}"/> |
398 | | - </exec> |
| 392 | + |
| 393 | + <target name="mvn.install" depends="dist, doc.jars, -mvn.generate.pom, -mvn.inittasks" |
| 394 | + description="Installs the current release into the local maven repository"> |
| 395 | + <!-- Install Extras API module --> |
| 396 | + <artifact:pom id="app-pom" file="${dir.build}/maven-pom/echo3extras-app-pom.xml" /> |
| 397 | + <artifact:install file="${dir.dist.lib}/${jarfile.extras.app}"> |
| 398 | + <pom refid="app-pom"/> |
| 399 | + <attach file="${dir.dist.lib}/${srcfile.extras.app}" type="jar" classifier="sources"/> |
| 400 | + <attach file="${dir.dist.lib}/${docfile.extras.app}" type="jar" classifier="javadoc"/> |
| 401 | + </artifact:install> |
| 402 | + |
| 403 | + <!-- Install Extras Web Servlet module --> |
| 404 | + <artifact:pom id="webcontainer-pom" file="${dir.build}/maven-pom/echo3extras-webcontainer-pom.xml" /> |
| 405 | + <artifact:install file="${dir.dist.lib}/${jarfile.extras.webcontainer}"> |
| 406 | + <pom refid="webcontainer-pom"/> |
| 407 | + <attach file="${dir.dist.lib}/${srcfile.extras.webcontainer}" type="jar" classifier="sources"/> |
| 408 | + <attach file="${dir.dist.lib}/${docfile.extras.webcontainer}" type="jar" classifier="javadoc"/> |
| 409 | + </artifact:install> |
399 | 410 | </target> |
400 | | - |
401 | | - <target name="jslint.extras"> |
402 | | - <java fork="true" jar="${dir.resource.jslint}/rhino.jar"> |
403 | | - <arg value="${dir.resource.jslint}/jslint.js"/> |
404 | | - <arg value="${dir.src.client.extras}/"/> |
405 | | - </java> |
| 411 | + |
| 412 | + <target name="mvn.snapshot" depends="dist, doc.jars, -mvn.generate.pom, -mvn.inittasks" |
| 413 | + description="Deploy snapshot version to configured Maven snapshot repository"> |
| 414 | + <!-- The artifact:deploy tasks do not repesct settings.xml for proxy/auth, so we use the mvn task --> |
| 415 | + <!-- Deploy Echo API module. --> |
| 416 | + <artifact:mvn> |
| 417 | + <arg value="org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy-file" /> |
| 418 | + <arg value="-Durl=${maven.repository.snapshots.url}" /> |
| 419 | + <arg value="-DrepositoryId=${maven.repository.snapshots.id}" /> |
| 420 | + <arg value="-DpomFile=${dir.build}/maven-pom/echo3extras-app-pom.xml" /> |
| 421 | + <arg value="-Dfile=${dir.dist.lib}/${jarfile.extras.app}" /> |
| 422 | + <arg value="-Dsources=${dir.dist.lib}/${srcfile.extras.app}" /> |
| 423 | + <arg value="-Djavadoc=${dir.dist.lib}/${docfile.extras.app}" /> |
| 424 | + <arg value="-e" /> |
| 425 | + </artifact:mvn> |
| 426 | + <artifact:mvn> |
| 427 | + <arg value="org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy-file" /> |
| 428 | + <arg value="-Durl=${maven.repository.snapshots.url}" /> |
| 429 | + <arg value="-DrepositoryId=${maven.repository.snapshots.id}" /> |
| 430 | + <arg value="-DpomFile=${dir.build}/maven-pom/echo3extras-webcontainer-pom.xml" /> |
| 431 | + <arg value="-Dfile=${dir.dist.lib}/${jarfile.extras.webcontainer}" /> |
| 432 | + <arg value="-Dsources=${dir.dist.lib}/${srcfile.extras.webcontainer}" /> |
| 433 | + <arg value="-Djavadoc=${dir.dist.lib}/${docfile.extras.webcontainer}" /> |
| 434 | + <arg value="-e" /> |
| 435 | + </artifact:mvn> |
| 436 | + </target> |
| 437 | + |
| 438 | + <target name="mvn.stage" depends="dist, doc.jars, -mvn.generate.pom, -mvn.inittasks" |
| 439 | + description="Deploy snapshot version to configured Maven snapshot repository"> |
| 440 | + <macrodef name="deploysigned"> |
| 441 | + <attribute name="module"/> |
| 442 | + <attribute name="file"/> |
| 443 | + <attribute name="classifier"/> |
| 444 | + |
| 445 | + <sequential> |
| 446 | + <artifact:mvn> |
| 447 | + <arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" /> |
| 448 | + <arg value="-Durl=${maven.repository.staging.url}" /> |
| 449 | + <arg value="-DrepositoryId=${maven.repository.staging.id}" /> |
| 450 | + <arg value="-DpomFile=${dir.build}/maven-pom/echo3extras-@{module}-pom.xml" /> |
| 451 | + <arg value="-Dfile=${dir.dist.lib}/@{file}" /> |
| 452 | + <arg value="-Dclassifier=@{classifier}" /> |
| 453 | + <arg value="-e" /> |
| 454 | + <arg value="-Pgpg" /> |
| 455 | + </artifact:mvn> |
| 456 | + </sequential> |
| 457 | + </macrodef> |
| 458 | + |
| 459 | + <deploysigned module="app" classifier="" file="${jarfile.extras.app}"/> |
| 460 | + <deploysigned module="app" classifier="sources" file="${srcfile.extras.app}"/> |
| 461 | + <deploysigned module="app" classifier="javadoc" file="${docfile.extras.app}"/> |
| 462 | + |
| 463 | + <deploysigned module="webcontainer" classifier="" file="${jarfile.extras.webcontainer}"/> |
| 464 | + <deploysigned module="webcontainer" classifier="sources" file="${srcfile.extras.webcontainer}"/> |
| 465 | + <deploysigned module="webcontainer" classifier="javadoc" file="${docfile.extras.webcontainer}"/> |
406 | 466 | </target> |
407 | 467 |
|
| 468 | + <target name="-mvn.inittasks" unless="mvntasks.initialized"> |
| 469 | + <taskdef resource="de/exxcellent/ant/tasks.properties" classpath="resource/maven/ant-exxtasks-1.0.jar"/> |
| 470 | + <extendclasspath path="resource/maven/maven-ant-tasks-2.1.3.jar"/> |
| 471 | + <available property="mvntasks.initialized" classname="org.apache.maven.project.MavenProject"/> |
| 472 | + </target> |
408 | 473 |
|
409 | 474 | <target name="jslint.webcontainer"> |
410 | 475 | <java fork="true" jar="${dir.resource.jslint}/rhino.jar"> |
|
413 | 478 | </java> |
414 | 479 | </target> |
415 | 480 |
|
| 481 | + <target name="jslint.extras"> |
| 482 | + <java fork="true" jar="${dir.resource.jslint}/rhino.jar"> |
| 483 | + <arg value="${dir.resource.jslint}/jslint.js"/> |
| 484 | + <arg value="${dir.src.client.extras}/"/> |
| 485 | + </java> |
| 486 | + </target> |
| 487 | + |
416 | 488 | <target name="jslint" depends="jslint.extras,jslint.webcontainer"> |
417 | 489 | </target> |
418 | 490 |
|
|
0 commit comments