> On 12/7/2018 12:10 AM, Jaikiran Pai wrote: >> Hello Dennis, >> >> >> On 07/12/18 1:15 AM, Dennis Putnam wrote: >>> <artifact:dependencies filesetid="maven-dependencies"> >>> >> I don't see this fileset being used in the rest of the target(s) which >> generate your jar file. Maybe you missed using it to copy over the >> dependency files? Take a look at section "Using FileSets and the Version >> Mapper" of http://maven.apache.org/ant-tasks/examples/dependencies.html >> for an example on how you could use it. >> >> -Jaikiran > Hi Jaikiran, > > Thanks for the reply. I thought it must have been some thing like that. > After reading your link and as a maven noob and not much better with > ant, I see I have to copy those dependencies. But it is not clear where > they need to be copied to. The example shows "lib" but I don't see how > javac knows to look there unless it is by default. My build directory is > a local git repository so the structure is "bin" and "src" in that > directory. There is no "lib" at the present time. That is also were I > have the build xml file for ant along with some files for obtaining some > information during the ant build. The output file for the jar is in a > directory in "/tmp" which is later copied to its final location. Although no one was able to ultimately help me with this problem I did finally get it to work. It took a lot of digging and trying a lot of different suggested solutions before I found one that actually worked. To close out this thread for the archives, here is what I discovered:
It seems that 'ant' is not able to figure out how to handle the maven
remote repositories or maven jar files, at least in any of the solutions
I tried. I finally found that if I downloaded the maven jars manually
and put them in the normal maven library (.m2/repository) I could then
use the zipfileset directives to get them included. Although the library
itself is really arbitrary. Here is my final build xml file, the bolded
text is all I needed to change:
<?xml version="1.0" encoding="UTF-8"?>
<project name="KCBSEvents" default="jar" basedir=".">
<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="" />
<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">
<echo message="Using destination file ${jarfile}" />
<javac srcdir="src" destdir="bin" includeantruntime="false" />
<jar destfile="${jarfile}" basedir="bin"
*filesetmanifest="mergewithoutmain"*>
<manifest>
<attribute name="Manifest-Version" value="1.0"/>
<attribute name="Created-By" value="ant 1.9.2 on CentOS
7" />
<attribute name="Main-Class"
value="KCBSEvents.KCBSEvents" />
</manifest>
*<fileset dir="${user.home}/.m2/repository" />**
** <zipfileset excludes="META-INF/*.SF"
src="${user.home}/.m2/repository/commons-io/2.5/commons-io-2.5.jar"/>**
** <zipfileset excludes="META-INF/*.SF"
src="${user.home}/.m2/repository/httpcomponents-client/httpclient-4.5.6.jar"/>**
** <zipfileset excludes="META-INF/*.SF"
src="${user.home}/.m2/repository/httpcomponents-client/httpcore-4.4.10.jar"/>**
** <zipfileset excludes="META-INF/*.SF"
src="${user.home}/.m2/repository/commons-logging/1.2/commons-logging-1.2.jar"/>**
** <zipfileset excludes="META-INF/*.SF"
src="${user.home}/.m2/repository/commons-codec/1.10/commons-codec-1.10.jar"/>*
</jar>
</target>
</project>
signature.asc
Description: OpenPGP digital signature
