使用ant编译时build.xml样例

<?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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值