Ant常见知识

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>

猜你喜欢

转载自herry.iteye.com/blog/1198574