> 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