From 4d42096361df2b3c09a547dc6d53c21aa57cc02e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr> Date: Sun, 15 Jul 2012 13:03:07 +0000 Subject: [PATCH] - used a macrodef instead of the onejar target --- build.xml | 149 ++++++++++++++++++++++++++---------------------------- 1 file changed, 72 insertions(+), 77 deletions(-) diff --git a/build.xml b/build.xml index 8e0120c5..432ee7d9 100644 --- a/build.xml +++ b/build.xml @@ -144,6 +144,52 @@ <!-- cover: emma seems really difficult <taskdef resource="emma_ant.properties" classpathref="emma.lib" /--> + <macrodef name="onejar" description="utility macro for JAR packaging"> + <attribute name="group" description="Maven group ID" /> + <attribute name="file" description="Artifact name" /> + <attribute name="desc" description="Description" /> + <attribute name="main" description="Main class to call" default=""/> + <attribute name="pack" description="Exported packages" /> + <attribute name="impt" description="Imported packages" default="" /> + <attribute name="path" description="Class path" default="" /> + <attribute name="contentid" description="The fileset Id of the files to include" /> + <sequential> + <delete file="lib/@{file}.jar"/> + <!-- it may even be easier to generate the pom --> + <copy file="distrib/@{file}.pom" toFile="lib/@{file}.pom"> + <filterset> + <filter token="GROUPID" value="@{group}"/> + <filter token="ARTID" value="@{file}"/> + <filter token="VERS" value="${version}"/> + <filter token="DATE" value="${date}"/> + <filter token="REV" value="${svn.rev}"/> + <filter token="COPYYEAR" value="${copyyear}"/> + </filterset> + </copy> + <jar jarfile="lib/@{file}.jar"> + <manifest> + <attribute name="Built-Date" value="${date}"/> + <attribute name="Main-Class" value="@{main}"/> + <attribute name="Class-Path" value="@{path}"/> + <attribute name="Specification-Title" value="@{desc}"/> + <attribute name="Specification-Version" value="${version} (${svn.rev})"/> + <attribute name="Bundle-Name" value="@{desc}"/> + <attribute name="Bundle-SymbolicName" value="@{file}"/> + <attribute name="Bundle-Version" value="${version} (${svn.rev})"/> + <attribute name="Bundle-Copyright" value="INRIA, ${copyyear}"/> + <attribute name="Bundle-Date" value="${date}"/> + <attribute name="Bundle-License" value="GNU Lesser General Public License 2.1 or above"/> + <attribute name="Export-package" value="@{pack}"/> + <attribute name="Import-package" value="@{impt}"/> + </manifest> + <!-- This should be achieved with a metainf tag, but not working --> + <zipfileset file="classes/LICENSE.TXT" fullpath="META-INF/LICENSE.TXT" /> + <zipfileset file="lib/@{file}.pom" fullpath="META-INF/maven/@{group}/@{file}/pom.xml" /> + <fileset refid="@{contentid}" /> + </jar> + </sequential> + </macrodef> + <!-- tested --> <target name="jar" depends="compile" description="Create jar archives"> <echo message="Jarchiving..."/> @@ -153,16 +199,11 @@ <fileset id="alignset" dir="classes"> <include name="org/semanticweb/owl/align/*.class"/> </fileset> - <antcall target="onejar"> - <param name="group" value="org.semanticweb.owl" /> - <param name="file" value="align" /> - <param name="desc" value="Alignment API" /> - <param name="main" value="" /> - <param name="pack" value="org.semanticweb.owl.align" /> - <param name="impt" value="" /> - <param name="path" value="" /> - <reference refid="alignset" torefid="content" /> - </antcall> + <onejar file="align" + group="org.semanticweb.owl" + desc="Alignment API" + pack="org.semanticweb.owl.align" + contentid="alignset" /> <!-- ontowrap.jar --> <copy file="src/fr/inrialpes/exmo/ontowrap/skoslite/skos.rdf" tofile="classes/fr/inrialpes/exmo/ontowrap/skoslite/skos.rdf" /> @@ -170,16 +211,11 @@ <include name="fr/inrialpes/exmo/ontowrap/**/*.class" /> <include name="fr/inrialpes/exmo/ontowrap/**/*.rdf"/> </fileset> - <antcall target="onejar"> - <param name="group" value="fr.inrialpes.exmo" /> - <param name="file" value="ontowrap" /> - <param name="desc" value="Ontology wrapper" /> - <param name="impt" value="" /> - <param name="pack" value="fr.inrialpes.exmo.ontowrap,fr.inrialpes.exmo.ontowrap.jena25,fr.inrialpes.exmo.ontowrap.owlapi10,fr.inrialpes.exmo.ontowrap.owlapi30,fr.inrialpes.exmo.ontowrap.util" /> - <param name="impt" value="" /> - <param name="path" value="" /> - <reference refid="wrapset" torefid="content" /> - </antcall> + <onejar file="ontowrap" + group="fr.inrialpes.exmo" + desc="Ontology wrapper" + pack="fr.inrialpes.exmo.ontowrap,fr.inrialpes.exmo.ontowrap.jena25,fr.inrialpes.exmo.ontowrap.owlapi10,fr.inrialpes.exmo.ontowrap.owlapi30,fr.inrialpes.exmo.ontowrap.util" + contentid="wrapset" /> <!-- procalign.jar --> <fileset id="procset" dir="classes"> @@ -190,70 +226,29 @@ <include name="fr/inrialpes/exmo/align/gen/**/*.class"/> <include name="fr/inrialpes/exmo/align/ling/**/*.class"/> </fileset> - <antcall target="onejar"> - <param name="group" value="fr.inrialpes.exmo.align" /> - <param name="file" value="procalign" /> - <param name="desc" value="Alignment API implementation" /> - <param name="main" value="fr.inrialpes.exmo.align.cli.Procalign" /> - <param name="pack" value="fr.inrialpes.exmo.align.impl,fr.inrialpes.exmo.align.impl.edoal,fr.inrialpes.exmo.align.impl.eval,fr.inrialpes.exmo.align.impl.method,fr.inrialpes.exmo.align.impl.rel,fr.inrialpes.exmo.align.impl.renderer,fr.inrialpes.exmo.align.ling,fr.inrialpes.exmo.align.parser,fr.inrialpes.exmo.align.util,fr.inrialpes.exmo.align.cli,fr.inrialpes.exmo.align.gen" /> - <param name="impt" value="fr.inrialpes.exmo.ontowrap,fr.inrialpes.exmo.ontowrap.jena25,fr.inrialpes.exmo.ontowrap.owlapi10,fr.inrialpes.exmo.ontowrap.owlapi30,fr.inrialpes.exmo.ontowrap.util,org.semanticweb.owl.align" /> - <param name="path" value="${jarclasspath}"/> - <reference refid="procset" torefid="content" /> - </antcall> + <onejar file="procalign" + group="fr.inrialpes.exmo.align" + desc="Alignment API implementation" + main="fr.inrialpes.exmo.align.cli.Procalign" + pack="fr.inrialpes.exmo.align.impl,fr.inrialpes.exmo.align.impl.edoal,fr.inrialpes.exmo.align.impl.eval,fr.inrialpes.exmo.align.impl.method,fr.inrialpes.exmo.align.impl.rel,fr.inrialpes.exmo.align.impl.renderer,fr.inrialpes.exmo.align.ling,fr.inrialpes.exmo.align.parser,fr.inrialpes.exmo.align.util,fr.inrialpes.exmo.align.cli,fr.inrialpes.exmo.align.gen" + impt="fr.inrialpes.exmo.ontowrap,fr.inrialpes.exmo.ontowrap.jena25,fr.inrialpes.exmo.ontowrap.owlapi10,fr.inrialpes.exmo.ontowrap.owlapi30,fr.inrialpes.exmo.ontowrap.util,org.semanticweb.owl.align" + path="${jarclasspath}" + contentid="procset" /> <!-- alignsvc.jar --> + <copy file="src/fr/inrialpes/exmo/align/service/aserv.wsdl" tofile="classes/fr/inrialpes/exmo/align/service/aserv.wsdl" filtering="false"/> <fileset id="servset" dir="classes"> <include name="fr/inrialpes/exmo/align/service/**/*.class"/> <include name="fr/inrialpes/exmo/align/service/**/*.wsdl"/> <include name="fr/inrialpes/exmo/queryprocessor/**/*.class"/> </fileset> - <copy file="src/fr/inrialpes/exmo/align/service/aserv.wsdl" tofile="classes/fr/inrialpes/exmo/align/service/aserv.wsdl" filtering="false"/> - <antcall target="onejar"> - <param name="group" value="fr.inrialpes.exmo.align" /> - <param name="file" value="alignsvc" /> - <param name="desc" value="Alignment server" /> - <param name="main" value="fr.inrialpes.exmo.align.service.AlignmentService" /> - <param name="pack" value="fr.inrialpes.exmo.align.queryprocessor,fr.inrialpes.exmo.align.service,fr.inrialpes.exmo.align.service.jade,fr.inrialpes.exmo.align.service.jade.messageontology" /> - <param name="path" value="procalign.jar jade/jade.jar jade/iiop.jar jade/http.jar jdbc/mysql-connector-java.jar jdbc/postgresql-jdbc4.jar servlet/servlet-api.jar jetty/jetty.jar jetty/jetty-util.jar xerces/xercesImpl.jar" /> - <reference refid="servset" torefid="content" /> - </antcall> - </target> - - <target name="onejar" description="Create jar archives"> - <echo message="Jarchiving..."/> - <delete file="lib/${file}.jar"/> - <!-- it may even be easier to generate the pom --> - <copy file="distrib/${file}.pom" toFile="lib/${file}.pom"> - <filterset> - <filter token="GROUPID" value="${group}"/> - <filter token="ARTID" value="${file}"/> - <filter token="VERS" value="${version}"/> - <filter token="DATE" value="${date}"/> - <filter token="REV" value="${svn.rev}"/> - <filter token="COPYYEAR" value="${copyyear}"/> - </filterset> - </copy> - <jar jarfile="lib/${file}.jar"> - <manifest> - <attribute name="Built-Date" value="${date}"/> - <attribute name="Main-Class" value="${main}"/> - <attribute name="Class-Path" value="${path}"/> - <attribute name="Specification-Title" value="${desc}"/> - <attribute name="Specification-Version" value="${version} (${svn.rev})"/> - <attribute name="Bundle-Name" value="${desc}"/> - <attribute name="Bundle-SymbolicName" value="${file}"/> - <attribute name="Bundle-Version" value="${version} (${svn.rev})"/> - <attribute name="Bundle-Copyright" value="INRIA, ${copyyear}"/> - <attribute name="Bundle-Date" value="${date}"/> - <attribute name="Bundle-License" value="GNU Lesser General Public License 2.1 or above"/> - <attribute name="Export-package" value="${pack}"/> - <attribute name="Import-package" value="${impt}"/> - </manifest> - <!-- This should be achieved with a metainf tag, but not working --> - <zipfileset file="classes/LICENSE.TXT" fullpath="META-INF/LICENSE.TXT" /> - <zipfileset file="lib/${file}.pom" fullpath="META-INF/maven/${group}/${file}/pom.xml" /> - <fileset refid="content" /> - </jar> + <onejar file="alignsvc" + group="fr.inrialpes.exmo.align" + desc="Alignment server" + main="fr.inrialpes.exmo.align.service.AlignmentService" + pack="fr.inrialpes.exmo.align.queryprocessor,fr.inrialpes.exmo.align.service,fr.inrialpes.exmo.align.service.jade,fr.inrialpes.exmo.align.service.jade.messageontology" + path="procalign.jar jade/jade.jar jade/iiop.jar jade/http.jar jdbc/mysql-connector-java.jar jdbc/postgresql-jdbc4.jar servlet/servlet-api.jar jetty/jetty.jar jetty/jetty-util.jar xerces/xercesImpl.jar" + contentid="servset" /> </target> <!-- tested --> -- GitLab