1.一个jar打包程序示例
<target name="clientjar" depends="compile"> <jar jarfile="${DYVCenterVNCClient.build}/dist/${DYVCenterVNCClient.jar}"> <manifest> <attribute name="Built-By" value="${user.name}"/> <attribute name="Built-Time" value="${build.time}"/> <attribute name="Main-Class" value="classsname"/> </manifest> <fileset dir="${DYVCenterVNCClient.classbindir}"/> <!--<fileset dir="./META-INF"/>--> <zipfileset src="${thirdpart.lib}/apache-cxf-2.4.1/lib/cxf-2.4.1.jar"/> <!--特别注意这里的include的形式--> <zipfileset src="${thirdpart.lib}/apache-cxf-2.4.1/lib/xmlschema-core-2.0.jar"> <include name="org/**"/> <include name="META-INF/maven/**"/> </zipfileset> </jar> </target>
2.如何在javac的classpath和copy任务引用相同的目录(using filelist for classpath and copy task)
http://coding.derkeiler.com/Archive/Java/comp.lang.java.programmer/2008-02/msg00342.html
filelist必须定义dir,否则copy时拷贝不了文件
<path id="CLASSPATH"> <filelist id="ID_DYV_FILELIST" dir=".."> <file name="DYVServer/build/dist/DYVServer.jar"/> <file name="DYVCenterVNCClient/build/dist/DYVCenterVNCClient_HostVCenter.jar"/> </filelist> <filelist id="ID_THIRDPART_FILELIST" dir="${thirdpart.lib}"> <file name="log4j/1.2.15/log4j-1.2.15.jar"/> <file name="jettison/1.3/jettison-1.3.jar"/> </filelist> <fileset id="ID_SPRING_FRAMEWORK" dir="${thirdpart.lib}/spring-framework/3.0.5" includes="**/*.jar"/> <fileset id="ID_JGROUP" dir="${thirdpart.lib}/jgroup/2.12.2" includes="*.jar"/> </path> <javac includeantruntime="false" srcdir="${build.src.dir}" excludes="test/" destdir="${build.classes.dir}" fork="yes" source="1.8" debug="on" encoding="UTF-8" classpathref="CLASSPATH"> </javac> <!--flatten为true,表示只拷贝文件不包含文件所在的目录--> <copy todir="${build.dist.dir}/lib" flatten="true"> <filelist refid="ID_DYV_FILELIST"/> <filelist refid="ID_THIRDPART_FILELIST"/> </copy> <copy todir="${build.dist.dir}/lib"> <fileset refid="ID_JGROUP"/> <fileset refid="ID_SPRING_FRAMEWORK"/> </copy>