jakarta-ant的使用(java編譯工具)
最後更新:2017-02-28
來源:互聯網
上載者:User
編譯 一:介紹:
ant 是jakarta的一個編譯工具,如果你瞭解linux/Unix下的makefile你就很容易
理解ant的用途了。ant最適合你使用UltraEdit(EditPlus)寫java程式,然後你使用ant去編譯,同時javadoc ,產生一個jar,war,實現檔案的copy都可以在build.xml通過不同的tager去實現,還是很方便的一個東東強烈推薦是使用。
二:下載
你可以從下面的地址下載到ant,目前版本:1.41
http://jakarta.apache.org/builds/jakarta-ant/release/v1.4.1/bin/
三:安裝
a:)Windows
1:解壓你下載的檔案,會有一個jakarta-ant(版本號碼的)目錄產生,把他改名為ant
2:copy ant 目錄到你需要的位置。
3:在環境變數中添加:ANT_HOME=ant的安裝目錄,path中加$ANT_HOME$\in;注意你同時必須已經安裝了jdk,並添加了JAVA_HOME的環境變數,同時早path中加了$JAVA_HOME$\in;
b:)Linux/Unix
1:解壓你下載的檔案,會有一個jakarta-ant(版本號碼的)目錄產生,把他改名為ant
2:copy ant 目錄到你需要的位置。
3:在環境變數中添加:ANT_HOME=ant的安裝目錄,path中加$ANT_HOME$\in;注意你同時必須已經安裝了jdk,並添加了JAVA_HOME的環境變數,同時早path中加了$JAVA_HOME$\in;實現修改環境變數你需要修改.bash_profile檔案。
如下
ANT_HOME=/usr/local/ant
JAVA_HOME=/usr/local/jdk
PATH=$PATH:$HOME/bin:/usr/local/ant/bin:/usr/local/jdk/bin
export PATH ANT_HOME JAVA_HOME
四:編寫build.xml
build.xml相當Linux下的makefile,具體的實現都在build.xml中實現。
我給給例子說明一下。
build.xml
================================================================
<project name="bingo" default="build" basedir="../.." >
<!--basedir設定工作目錄-->
<property name="version" value="1.0"/>
<!-- The base directory relative to which most targets are built -->
<property name="base" value="."/>
<!-- The directory where source files are stored. -->
<property name="java.source.dir" value="bingo/src"/>
<!--代碼儲存路徑-->
<!-- Destination for compiled files -->
<property name="javac.dest" value="bingo/classes"/>
<!--class儲存路徑-->
<!-- Destination for generated jar files -->
<property name="jar.dest" value="bingo/jar"/>
<!--jar檔案儲存路徑-->
<!-- Destination for documentation files generated or not -->
<property name="docs" value="bingo/docs"/>
<!--javadoc檔案儲存路徑-->
<!-- Destination for javadoc generated files -->
<property name="javadoc.dest" value="bingo/docs"/>
<!-- The stem where most log4j source code is located. -->
<property name="stem" value="com/bingo"/>
<property name="base-files" value="include"/>
<!-- Original manifest.mf file before filtering. -->
<property name="manifest.src" value="bingo/build/manifest.mf"/>
<!-- Some targets needs a more precise stem. -->
<property name="BSTEM" value="${java.source.dir}/${stem}"/>
<property name="tomcat.dir" value="c:/Apache/Tomcat"/>
<property name="webapp.dir" value="${tomcat.dir}/webapps/ROOT/WEB-INF/classes"/>
<!--List all Package used in this project -->
<property name="PackageList" value="
com.bingo,
com.bingo.database,
com.bingo.dbocw,
com.bingo.util,
com.bingo.taglibs.jndi,
com.bingo.finance.database,
com.bingo.finance.entity,
com.bingo.finance.manager"
/>
<!--你的project中所有的包-->
<!-- List all jar or file used in this project -->
<property name="classpath" value="${classpath};
${base-files}/tomcat/servlet.jar;
${base-files}/tomcat/webserver.jar;
${base-files}/log4j/log4j.jar;
${base-files}/log4j/log4j-core.jar"
/>
<!--你需要用到的包-->
<target name="init">
<tstamp />
</target>
<target name="build" depends="init">
<echo>
Building...
</echo>
<mkdir dir="${javac.dest}" />
<javac srcdir="${java.source.dir}"
destdir="${javac.dest}"
classpath="${classpath}"
debug="on"/>
</target>
<!-- ================================================================= -->
<!-- Copy class files to tomcat dir. -->
<!-- ================================================================= -->
<target name="copy" depends="build">
<copy todir="${webapp.dir}/com/bingo">
<fileset dir="${javac.dest}/com/bingo">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/util">
<fileset dir="${javac.dest}/com/bingo/util">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/database">
<fileset dir="${javac.dest}/com/bingo/database">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/dbocw">
<fileset dir="${javac.dest}/com/bingo/dbocw">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/finance/database">
<fileset dir="${javac.dest}/com/bingo/finance/database">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/finance/entity">
<fileset dir="${javac.dest}/com/bingo/finance/entity">
<include name="*.class"/>
</fileset>
</copy>
<copy todir="${webapp.dir}/com/bingo/finance/manager">
<fileset dir="${javac.dest}/com/bingo/finance/manager">
<include name="*.class"/>
</fileset>
</copy>
</target>
<!-- ================================================================= -->
<!-- Remove all generated (compiled) class files. -->
<!-- ================================================================= -->
<target name="clean" depends="init">
<delete dir="${javac.dest}/" />
</target>
<!-- ================================================================= -->
<!-- Remove all backup files. -->
<!-- ================================================================= -->
<target name="delete" depends="init">
<delete >
<fileset dir="${java.source.dir}/com/bingo">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/util">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/database">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/finance/database">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/finance/entity">
<include name="*.bak"/>
</fileset>
</delete>
<delete >
<fileset dir="${java.source.dir}/com/bingo/finance/manager">
<include name="*.bak"/>
</fileset>
</delete>
</target>
<!-- ================================================================= -->
<!-- Remove the temporary manifest file, actual work is done in the -->
<!-- dependencies. -->
<!-- ================================================================= -->
<target name="prejar" depends="build">
<mkdir dir="${jar.dest}"/>
<filter token="version" value="${version}" />
<copy file="${manifest.src}" tofile="${jar.dest}/manifest.mf"
filtering="true"/>
</target>
<!-- ================================================================= -->
<!-- This target Create bingo.jar -->
<!-- ================================================================= -->
<target name="jar" depends="prejar">
<delete file="${jar.dest}/bingo.jar"/>
<jar jarfile="${jar.dest}/bingo.jar" basedir="${javac.dest}"
manifest="${jar.dest}/manifest.mf"
/>
</target>
<!-- ================================================================= -->
<!-- This target builds the javadoc files. -->
<!-- ================================================================= -->
<target name="javadoc" depends="build,init">
<mkdir dir="${javadoc.dest}" />
<javadoc sourcepath="${java.source.dir}"
destdir="${javadoc.dest}"
classpath="${classpath}"
packagenames="${PackageList}"
version="true"
protected="true"
author="true"
use="true"
windowtitle="Bingo Free Java Code Version ${version}"
header="Bingo Free Java Code${version}"
/>
</target>
</project>