从事Java技术开发以来一直使用Ant进行项目打包、发布工作,却懒于记录自己的心得,最近发现自己脑子不够用,很多东西记不住,还是写写微博记录下来比较好。
Ant是Apache的一个开源项目,大家可以到官网下载最新版本:[url=http://ant.apache.org/]http://ant.apache.org/[/url]
Java的JDK推荐使用1.6 官方网站[url=http://www.oracle.com/technetwork/java/javase/downloads/index.html]http://www.oracle.com/technetwork/java/javase/downloads/index.html[/url]
具体的环境变量就不详细描述了,本文主要说明如何使用ant进行java project的打包工作。
1. Ant的简单组成:
build.properties 变量定义文件
build.xml 程序执行文件
2. Ant使用心得
由于网上有很多Ant的使用教程,这里就不详细说如何使用Ant,只写出个人的使用心得。
build.properties文件举例:
#定义ant存放位置
ant.lib.dir = D:/Tools/apache-ant-1.8.4/lib
#JDK用1.6.0.13以上版本
#JAVA_HOME = C:/Java/jdk1.6.0_18
#发布项目的根目录
release.home = ${basedir}/build/release
# 发布Java jar的根目录
release.lib = ${release.home}/lib
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Expression项目~~~~~~~~~~~~~~~~~~~~~~~~~~~
#项目路径
exp.home = ${basedir}/Expression
#项目名称
exp.name = expression
#项目类路径
exp.src = ${exp.home}/src
exp.antlr = ${exp.home}/antlr-generate
#编译class路径
exp.classes = ${exp.home}/bin
#加载jar包路径
exp.lib = ${exp.home}/lib
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Expression项目~~~~~~~~~~~~~~~~~~~~~~~~~~~
build.xml 文件举例:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="bi" default="release" basedir=".">
<description>用ANT将项目发布</description>
<!-- ***********导入需要用到的属性*********** -->
<property file="${basedir}/build/build.properties" />
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~发布Expression项目~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<!-- 需要用到的类库文件,包括工程本身lib目录下的所有jar zip -->
<path id="exp.classpath">
<pathelement location="${exp.classes}" />
<fileset dir="${exp.lib}">
<include name="*.jar" />
<include name="*.zip" />
</fileset>
</path>
<!-- 删除历史发布痕迹,创建新的发布所涉及的路径 -->
<target name="exp.clean">
<delete dir="${exp.classes}" />
<mkdir dir="${exp.classes}" />
</target>
<!-- 开始编译,打包项目 -->
<target name="exp.compile" depends="exp.clean">
<!-- 拷贝不同目录的文件到编译目录底下 -->
<copy todir="${exp.classes}" overwrite="true">
<fileset dir="${exp.src}"></fileset>
</copy>
<copy todir="${exp.classes}" overwrite="true">
<fileset dir="${exp.antlr}"></fileset>
</copy>
<!-- 编译工程目录【${exp.classes}】下的所有java文件,并将编译好的class文件放在【${exp.classes}】下面。用UTF-8编码 -->
<javac srcdir="${exp.classes}" destdir="${exp.classes}" encoding="UTF-8"
debug="yes" includeantruntime="on">
<classpath refid="exp.classpath"/>
</javac>
<!-- 将所有的classes打成jar包 -->
<jar destfile="${release.lib}/${exp.name}.jar">
<fileset dir="${exp.classes}">
<exclude name="**/*.java" />
</fileset>
</jar>
<echo message="exp.compile --> 发布 exp.compile 成功" />
</target>
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~发布Expression项目~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
<target name="release">
<echo message="-------------------编译Java Project-------------------"/>
<antcall target="exp.compile"/>
<echo message="-------------------编译Java Project 完成-------------------"/>
</target>
</project>
build.properties 文件的最大作用就是定义变量,方便在build.xml里面使用,在变动不大的时候直接修改属性文件,就可以完成相同的其他项目进行打包发布工作。
build.xml 中最主要的是通过<target name="exp.compile" depends="exp.clean">这种方式建立依赖关系,进行一步一步的程序操作,完成一个项目的打包发布。
按照这种方式打包Java项目简单、快捷,相信大家都喜欢。在很多自动化工具盛行的今天我依旧还使用者Ant,也许是懒于学习其他,但我还是喜欢最初的Ant。 :wink: