<?xml version="1.0"?>
<!-- name指定项目名称;basedir指定工作根目录,后面所有的目录都是在此基础上;当没有给定需要执行的target时,执行default中指定的target名称 -->
<project name="MysqlTest" basedir="." default="jar">
<!-- Define some names/properties -->
<property name="src" value="src"/>
<property name="config" value="config"/>
<property name="output" value="build"/>
<!-- <property name="javadoc" value="javadoc"/>-->
<property name="jarname" value="test.jar"/>
<property name="prefix" value="/usr/local/"/>
<!-- Purge build and doc directories (but not jar file) -->
<!-- 添加这段后可使用ant clean命令清除掉前一次编译形成的build文件-->
<target name="clean">
<delete dir="${output}"/>
<!-- <delete dir="${javadoc}"/> -->
</target>
<!-- Compile the java classes -->
<target name="compile">
<mkdir dir="${output}"/>
<javac destdir="${output}" debug="true" includeantruntime="false" target="1.8" source="1.8">
<src path="${src}"/>
<!-- 这里把config文件也当成source文件,把配置文件放到里面,就不怕找不到 -->
<src path="${config}"/>
<!-- 将第三方包放在lib文件夹下,并引用该文件夹 -->
<classpath refid="lib"/>
</javac>
</target>
<!-- Build and sign the jar file -->
<target name="jar" depends="compile">
<jar destfile="${jarname}">
<manifest>
<!-- Main-Class必须正确配置,否则生成jar包后jar包无法运行-->
<attribute name="Main-Class" value="cas.shao.mysql.DatabaseConnection"/>
<!-- 这句必须有,否则引用第三方包失败,发出NoClassDefFoundError-->
<attribute name="Class-Path" value="${libMF}"/>
</manifest>
<fileset dir="${output}"/>
<fileset dir="${src}" casesensitive="no">
<!-- <include name="**/*.gif"/>
<include name="**/*.png"/>
<include name="**/*.wav"/>
<include name="**/*.au"/>
<include name="**/*.properties"/> -->
</fileset>
<!-- 将当成souce文件的config文件夹中的配置文件包含在内,否则会因为找不到配置文件而无法运行生成的jar包-->
<fileset dir="${config}" casesensitive="no">
<!-- **标识递归地匹配一个或多个目录-->
<include name="**/*.xml"/>
<include name="**/*.properties"/>
</fileset>
</jar>
<!--<signjar jar="${jarname}" alias="cglt" storepass="cglt" keystore="signature.keys"/>-->
</target>
<!-- Install the jar files to a run-time directory -->
<target name="install" depends="jar">
<!-- Copy jar files to lib area -->
<property name="libdir" value="${prefix}/lib"/>
<mkdir dir="${libdir}"/>
<copy file="${jarname}" todir="${libdir}"/>
<copy todir="${libdir}">
<fileset dir="lib/">
<include name="*.jar"/>
</fileset>
</copy>
<!-- Generate some scripts in bin area -->
<property name="bindir" value="${prefix}/bin"/>
<property name="server_invocation" value="java -DIce.ThreadPool.Server.SizeMax=20 -DIce.MessageSizeMax=32768 -jar ${jarname}"/>
<mkdir dir="${bindir}"/>
</target>
<!-- List 3rdParty jar files for compilation -->
<!-- 在上面的编译中,<classpath refid="lib"/>,引号总只单纯用了lib,所以本处需要列明lib的路径,否则无法找到该文件夹 -->
<path id="lib">
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>
<!-- Get list of 3rdParty jar files formatted for manifest file -->
<!-- 此处配合生成jar文件中的<attribute name="Class-Path" value="${libMF}"/>语句使用 -->
<pathconvert property="libMF" pathsep=" ">
<mapper>
<chainedmapper>
<flattenmapper />
<mapper>
<globmapper from="*" to="*" />
<globmapper from="*" to="lib/*" />
</mapper>
</chainedmapper>
</mapper>
<path>
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
</path>
</pathconvert>
</project>
使用ant编译时build.xml样例
最新推荐文章于 2019-07-22 17:40:19 发布