关于Java中ANT的配置和使用

看到Ubuntu论坛中Java版里边几乎都是讨论Eclipse和Netbeans的使用和配置,很少见到有关于ANT的。其实ANT是学Java必不可少的一样工具,即Java进行持续整合不可少的工具。
目前说来,几乎每一个开源的知名Java项目(如Spring, Hibernate, Struts, Veiocity...)都会提供相应的ANT Build文件。
Java的配置就不多说了,最重要的是要有JAVA_HOME这个环境变量。

ANT的配置也很简单:
1. 去这里下载一个ANT的压缩包:http://ant.apache.org/bindownload.cgi
2. 将apache-ant-<version>.tar.gz解压到任意目录,假设为/home/jack/JavaLibraries/apache-ant-1.7.0
3. 设置环境变量,我采用的方法是编辑~/.bashrc文件对终端程序:
 

代码:
sudo vim ~/.bashrc


在该文件里边添加:
 

代码:
export ANT_HOME="/home/jack/JavaLibraries/apache-ant-1.7.0"
export PATH="${PATH}:${ANT_HOME}"


重启终端程序再输入:
ant -version
如果出现:Apache Ant version 1.7.0 compiled on December 13 2006
或者类似的,就说明ANT配置成功。

接下来就是关于ANT的build.xml文件,这也是使用ANT的最重要的部分。在开始任何一个项目的时候,都应该确定自己项目的目录结构,当然,你也可以设计一种通用的目录结构,以下是我常用的目录结构:
 

代码:
+ <project_dir>
  + src // 源码文件夹
    + java // Java实现代码
    + test // 测试代码
  + build // Class文件输出文件夹
    + classes
    + test
  + doc // 文档目录
    + src // 文档的源码(如Docbook XML或者latex)
    + api
    + test // 测试文档
    + html
    + pdf
    + resources // Images, CSS...
  + lib // Java包
    + build
    + runtime


如果是WEB开发的项目,目录结构就有所不同,例如会添加web文件夹,里边包含了整个WAR文件里的所有内容,这样打包就非常方便。

目录结构确定好后,开始编写build.xml。Build文件的编写是很有学问的,呵呵,和目录结构一样,可以编写一个通用的。一般的Build文件主要由三大部分组成:Properties, Paths和Targets。Properties就不用说了,定义了一系列属性,如源码文件夹的位置,项目的名字等等;Paths主要定义了一系列的路径,如Classpath等等;Targets是最重要的,每一个Target都是一个ANT的目标,在命令行上输入ant <target_name>就可以执行相应的ANT目标,非常方便(前提是你得先写好ANT Build文件),Target底下包含一些列的命令来帮助完成该目标。

关于Properties的定义,有两种做法:
1. 直接用XML进行编写
2. 用Java Properties文件编写,然后进行导入
我想是个人就会选择第二种(当然,也要看情况而定),因为更简单。
针对于以上的目录结构,我一般的build.properties内容如下:
 

代码:
src.dir = src
src.java = ${src.dir}/java
src.test = ${src.dir}/test

bin.dir = build
bin.java = ${bin.dir}/classes
bin.test = ${bin.dir}/test

lib.dir = lib
lib.bt = ${lib.dir}/build
lib.rt = ${lib.dir}/runtime

doc.dir = doc
doc.api = ${doc.dir}/api
doc.test = ${doc.dir}/test
doc.html = ${doc.dir}/html
doc.pdf = ${doc.dir}/pdf
doc.rsc = ${doc.dir}/resources
 


有了这个以后,就可以在build.xml中进行导入:<property file="build.properties" />
有了这些属性,编写Build文件就方便了。在Java开发中,最烦人的就是关于Classpath的设置,幸运的是ANT为我们提供了非常方便的Classpath设置方法:
 
代码:
<path id="master.cp">
    <fileset dir="${lib.rt}">
        <include name="***.java" />
            </fileset>
        </copy>
    </target>

    <target name="test.compile">
        <mkdir dir="${bin.test}" />
        <javac source="1.5"
                target="1.5"
                srcdir="${src.test}"
                destdir="${bin.test}"
                classpathref="master.cp" />
        <copy todir="${bin.test}">
            <fileset dir="${src.test}">
                <exclude name="***Test.java" />
                </fileset>
            </batchtest>
        </junit>
    </target>

    <target name="doc.api">
        <mkdir dir="${doc.api}" />
        <javadoc destdir="${doc.api}"
                  classpathref="master.cp"
                  version="true"
                  author="true"
                  windowtitle="Websterm API">
            <fileset dir="${src.java}" defaultexcludes="yes">
                <include name="**/*.java" />
            </fileset>
            <doctitle>
                <![CDATA[<h1>Websterm API Documentation</h1>]]></doctitle>
    </javadoc>
</target>
</project>

以上是我对Java开发的一些认识吧,我比较喜欢ANT,我也曾经用过许多IDE,Eclipse, Netbeans, IDEA,但是最后还是ANT最实用,因为不管走到哪里,我都只要把我的项目打个包,一解压,用ANT完成循环就行了,非常方便。如果有什么不妥或者需要说明之处,请大家一定提出高贵意见,谢谢

你可能感兴趣的:(java,version,压缩包,的,是)