使用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功能