完善ANT的配置檔案
3.1 編寫功能完善的配置檔案
進一步用好ANT,現在開始學習ANT的配置檔案build.xml的詳細用法,。
3.1.1 建立工程目錄
命令列效果如下:
song@ubuntu:~$ cd project
song@ubuntu:~/project$ mkdir t03
song@ubuntu:~/project$ cd t03
song@ubuntu:~/project/t03$
3.1.2 編輯完善的配置檔案
編輯配置檔案project/t03/build.xml,內容如下:
<project name="hello" basedir="." default="main">
<!-- 定義常用的屬性 -->
<property name="src.dir" value="src"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="version" value="1.0"/>
<property name="fullname" value="${ant.project.name}-${version}"/>
<property name="main-class" value="my.app.Hello"/>
<!-- 清除任務 -->
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<!-- 編譯任務 -->
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="on"/>
</target>
<!-- 打包任務 -->
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${fullname}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<!-- 執行任務 -->
<target name="run" depends="jar">
<java jar="${jar.dir}/${fullname}.jar" fork="true"/>
</target>
<!-- 任務:清除並打包 -->
<target name="clean-build" depends="clean,jar"/>
<!-- 預設任務:清除並執行 -->
<target name="main" depends="clean,run"/>
</project>
3.1.3 配置檔案說明
關於工程(project) 工程的名稱(name),此檔案中值為hello; 工程的基準目錄(basedir),此檔案中值為.,即為當前目錄; 工程的預設任務(default),此檔案中值為main,即名為main的任務
關於屬性(property),相當於程式中的變數 屬性定義: 屬性引用:${屬性名}
原始碼目錄:src.dir,相當於./src
- 構建目錄:build.dir,相當於./build
- CLASS檔案目錄:class.dir,相當於./build/classes
- JAR包目錄:jar.dir,相當於./build/jar
- 版本號:version,值為1.0
- 全名:fullname,值為ant.project.name-version,即hello-1.0
主類名:main-class,值為my.app.Hello
關於任務(target)
任務關聯(depends),指定關聯的任務的名稱,則在執行此任務前一定要執行關聯的任務,即只有執行完關聯的任務,才會執行當前任務。
關於動作(task),請參考:http://ant.apache.org/manual/tasklist.html
加入屬性定義後,使配置檔案更具可讀性了,也更靈活了,我們可以編寫更復雜功能更強大的配置檔案了,所以一定義要學習使用;加入關聯(depends)後,使我們自定義任務的邏輯關聯和執行順序聯絡更緊密了,步驟更清晰了,這無疑是我們想要的。
3.2 編譯原始碼
編輯配置檔案build.xml完成後,我們就可以開始編輯簡單的原始碼來練習使用ANT了。
3.2.1 編輯原始碼
原始碼檔案project/t03/src/my/app/Hello.java,內容如下:
package my.app;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
因為目的是練習使用ANT,所以原始碼沒有改變,可以複製t02中的原始碼,命令列如下:
song@ubuntu:~/project/t03$ cp -r ../t02/src .
3.2.2 編譯執行
直接在命令列輸入ant,效果如下:
song@ubuntu:~/project/t03$ ant
Buildfile: /home/song/project/t03/build.xml
clean:
compile:
[mkdir] Created dir: /home/song/project/t03/build/classes
[javac] Compiling 1 source file to /home/song/project/t03/build/classes
jar:
[mkdir] Created dir: /home/song/project/t03/build/jar
[jar] Building jar: /home/song/project/t03/build/jar/hello-1.0.jar
run:
[java] Hello world!
main:
BUILD SUCCESSFUL
Total time: 1 second
輸出以上資訊,說明清除、編譯、打包、執行四個動作成功連續執行(這都是關聯的結果)。
當然也可以單獨執行,如果要清除編譯結果,執行ant clean命令,效果如下:
song@ubuntu:~/project/t03$ ant clean
Buildfile: /home/song/project/t03/build.xml
clean:
[delete] Deleting directory /home/song/project/t03/build
BUILD SUCCESSFUL
Total time: 0 seconds
3.2.3 工程的目錄結構
我們測試時的工程目錄結構是非常簡單的:
- 原始碼目錄:src
- 編譯結果class檔案目錄:build/classes
- 編譯結果jar檔案目錄:build/jar
關於工程的目錄結構一定要形成自己的風格,而且也要別人能讀懂,這才是最好的。
只管理了一個簡單的工程,下一章節研究如何管理多個工程,多個子目錄,每個子目錄下都有原始碼。
相關文章
- 簡單的ANT配置檔案
- ant指令碼呼叫.bat檔案指令碼BAT
- yangqd提交了一個ant的build檔案UI
- 使用ant編譯Java檔案(一)編譯Java
- 使用ant編譯Java檔案(二)編譯Java
- ANT安裝、配置
- Ant and Flex 用Ant編譯MXML檔案 - 螞蟻咬斷鬆緊帶(^_^)Flex編譯XML
- apache 配置檔案的配置(轉)Apache
- ssm的配置檔案SSM
- 構建dubbo分散式平臺-maven構建ant-framework框架的pom.xml檔案配置分散式MavenFramework框架XML
- ANT安裝、配置(轉)
- Git配置配置檔案Git
- (七) 構建dubbo分散式平臺-maven構建ant-framework框架的pom.xml檔案配置分散式MavenFramework框架XML
- ubuntu中ANT的安裝和配置Ubuntu
- Laravel 中的配置檔案Laravel
- ThinkPHP配置檔案的方法PHP
- SSM衍生的配置檔案SSM
- 修改Oracle的配置檔案Oracle
- 我的tmux配置檔案UX
- 我的Nginx配置檔案Nginx
- 配置檔案的編寫
- 2、coredump檔案的配置
- 利用ant編譯釋出打包jar檔案和打包api文件為rar檔案編譯JARAPI
- vue使用ant design vue(upload)檔案上傳Vue
- React降級配置及Ant Design配置React
- 8.4.4 配置檔案
- vim配置檔案
- Maven配置檔案Maven
- 配置檔案vimrc
- MySQL配置檔案MySql
- shell配置檔案
- mysql 配置檔案MySql
- WCF配置檔案
- bash配置檔案
- pch檔案配置
- nginx配置檔案Nginx
- Nginx 配置檔案Nginx
- Maven 配置檔案Maven