使用Ant自動構建Java項目成jar包配置


使用Ant很方便將Java項目打成jar包,下面是自己寫的一些配置。

build.properties

#set configuration
target.dir=target
targetclasses.dir=target/classes
targetlib.dir=target/lib
sourceclasses.dir=bin
sourcelib.dir=lib
src.dir=src
project.name=myServer
project.user=lzyer
project.MainClass=com.test.px.loader.MyClassLoader
#新增javadoc功能
targetdoc.dir=target/doc
build.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
   clean:刪除target文件夾
   compile:創建文件夾並將class編譯到文件夾中或者將bin目錄下的文件拷貝到classes目錄下
   package:clean->compile->打成jar包
   項目結構
  MyServer
   |-bin
   |-src
   |-lib
   |-target
   		|-classess
   		|-lib
   		|-jar
-->
<project name="${project.name}" default="package">
	
	<!--引入配置文件-->
	<property file="build.properties"/>
	
	<!--第三方jar包-->
	<path id="lib.classpath">
		<fileset dir="${sourcelib.dir}">
			<include name="/*.jar"/>
		</fileset>
	</path>
	
	<!--刪除之前的目錄,新建目錄-->
	<target name="init" depends="clean">
		<mkdir dir="${target.dir}"/>
		<mkdir dir="${targetclasses.dir}"/>
		<mkdir dir="${targetlib.dir}"/>
		<mkdir dir="${targetdoc.dir}"/>
	</target>
	
	<!--刪除target目錄-->
	<target name="clean">
		<delete dir="${target.dir}"></delete>
	</target>
	
	<!--方式一、
		這裏有個問題,會出現配置文件錯誤
		<target name="compile" depends="init">
			<javac srcdir="${src.dir}" destdir="${classes.dir}">
				<classpath refid="lib.classpath"></classpath>
			</javac>
		</target>
	-->
	
	<!--方式二、直接將bin目錄的class文件和配置文件直接移動到classes目錄下-->
	<target name="compile" depends="init">
		<copydir dest="${targetclasses.dir}" src="${sourceclasses.dir}"></copydir>
	</target>
	
	<!--拷貝jar包以及src下的配置文件-->
	<target name="install">
		<copy todir="${targetlib.dir}">
			<fileset dir="${sourcelib.dir}">
				<include name="/*.jar"/>
			</fileset>
		</copy>
		<copy todir="${targetclasses.dir}">
			<fileset dir="${src.dir}">
				<exclude name="**/*.java"/>
			</fileset>
		</copy>
	</target>
	
	<!--刪除javadoc,注意docencoding的GBK-->
	<target name="doc">
		<javadoc destdir="${targetdoc.dir}" encoding="UTF-8" docencoding="GBK">
			<packageset dir="${src.dir}">
				<include name="**"/>
			</packageset>
		</javadoc>
	</target>
	
	<!--打成jar包-->
	<target name="package" depends="compile,install,doc">
		<!--設置時間戳-->
		<tstamp></tstamp>
		
		<jar destfile="${target.dir}/${project.name}-${DSTAMP}.jar" basedir="${target.dir}">
			<manifest>
				<attribute name="Built-By" value="${project.user}"/>
				<attribute name="Main-Class" value="${project.MainClass}"/>
			</manifest>
		</jar>
	</target>
	
</project>

更新: 2016/8/15添加生成javadoc功能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章