ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dennis Putnam <d...@bellsouth.net>
Subject Including Maven Dependencies in Build
Date Thu, 06 Dec 2018 19:45:19 GMT
I have a working ant build script but I changed my application to use 
some maven dependencies. I am trying to include those dependencies into 
that build script. I found this article for doing that:

https://stackoverflow.com/questions/7335819/ant-eclipse-complains-about-artifactdependencies

I know this article is old but I cannot find anything more recent that 
is the equivalent. If anyone has anything I would certainly be 
interested. Anyway as result I came up with this build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="KCBSEvents" default="jar" basedir="." 
xmlns:artifact="antlib:org.apache.maven.artifact.ant">
     <property name="build.properties" value="build.properties"/>
     <property name="resources" value="resource" />
     <property name="jardir" value="KCBSEvents" />
     <property name="KCBSDir" value="src/KCBSEvents" />
     <property name="member.number" value="000000" />
     <property name="member.name" value="" />
     <path id="maven-ant-tasks.classpath" 
path="lib/maven-ant-tasks-2.1.3.jar" />
     <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
            uri="antlib:org.apache.maven.artifact.ant"
            classpathref="maven-ant-tasks.classpath" />
     <target name="mvn-init">
         <echo message="Loading maven dependencies" />
         <artifact:dependencies filesetid="maven-dependencies">
             <dependency groupId="org.apache.httpcomponents" 
artifactId="httpclient" version="4.5.6" />
             <dependency groupId="commons-io" artifactId="commons-io" 
version="2.5" />
         </artifact:dependencies>
     </target>
     <target name="checkOS">
         <condition property="isWindows">
             <os family="windows" />
         </condition>
         <condition property="isLinux">
             <os family="unix" />
         </condition>
     </target>
     <target name="if_windows" depends="checkOS" if="isWindows">
         <property name="jarfile" value="C:\temp\KCBSEvents.jar" />
         <property name="antcontrib" value="H:\html\Applets\ant-contrib" />
     </target>
     <target name="if_linux" depends="checkOS" if="isLinux">
         <property name="jarfile" 
value="/tmp/${member.number}/KCBSEvents.jar" />
         <property name="antcontrib" 
value="/var/www/html/Applets/ant-contrib/ant-contrib-1.0b3.jar" />
     </target>
     <target name="setclass" depends="if_linux,if_windows">
         <taskdef resource="net/sf/antcontrib/antcontrib.properties">
             <classpath>
                 <pathelement location="${antcontrib}" />
             </classpath>
         </taskdef>
     </target>
     <target name="incserial" depends="setclass">
         <copy todir="bin/${jardir}/${resources}">
             <fileset dir="${KCBSDir}/${resources}">
                 <include name="${build.properties}" />
             </fileset>
             <filterchain>
                 <expandproperties />
             </filterchain>
         </copy>
         <if> <isset Property="build.number" /> <then>
             <echo message="update build requested" />
         </then> <else>
             <echo message="new build requested" />
             <buildnumber />
         </else> </if>
         <propertyfile 
file="bin/${jardir}/${resources}/${build.properties}">
             <entry key="serialnumber" value="${build.number}" />
             <entry key="membernumber" value="${member.number}" />
             <entry key="name" value="${member.name}" />
         </propertyfile>
         <echo message="serial number: ${build.number}" />
     </target>
     <target name="jar" description="Compile serialized jar" 
depends="incserial,if_windows,if_linux,mvn-init">
         <echo message="Using destination file ${jarfile}" />
         <javac srcdir="src" destdir="bin" 
classpathref="compile.classpath" includeantruntime="false" />
         <jar destfile="${jarfile}" basedir="bin">
             <manifest>
                 <attribute name="Manifest-Version" value="1.0"/>
                 <attribute name="Created-By" value="1.6.0 (Sun 
Microsystems Inc.)" />
                 <attribute name="Main-Class" 
value="KCBSEvents.KCBSEvents" />
             </manifest>
         </jar>
     </target>
</project>

When I run ant I get a successful build. However, when I try to run the 
resulting jar file I get a traceback. The trackback seems to imply that 
the maven dependencies were not pulled into the jar. Am I missing 
something in the build that ties the dependencies to the jar? Can 
someone help me debug this? TIA.

FWIW here is the resulting output from the build:

Buildfile: /usr/build/makejar.xml

checkOS:

if_linux:

if_windows:

setclass:

incserial:
      [echo] update build requested
[propertyfile] Updating property file: 
/usr/build/bin/KCBSEvents/resource/build.
properties
      [echo] serial number: 1001

mvn-init:
      [echo] Loading maven dependencies

jar:
      [echo] Using destination file /tmp/60286/KCBSEvents.jar
       [jar] Building jar: /tmp/60286/KCBSEvents.jar

BUILD SUCCESSFUL
Total time: 3 seconds


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message