❶ 如何在Ant里運行Groovy腳本
Call 命令\r\n從一個批處理程序調用另一個批處理程序,並且不終止父批處理程序。call 命令接受用作調用目標的標簽。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。\r\n語法\r\ncall [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]\r\n參數\r\n[Drive:}[Path] FileName \r\n指定要調用的批處理程序的位置和名稱。filename 參數必須具有 .bat 或 .cmd 擴展名。\r\n\r\n\r\n如下:\r\n--------\r\ncd c:\aa \r\nant build 保存為1.bat\r\n-------------- \r\ncd ..\bb \r\nant test.db1 保存為2.bat\r\n-----------\r\ncd ..\cc \r\nant test.db2 保存為3.bat\r\n----------------\r\n\r\n\r\n\r\ncls \r\necho on Create a Test DB start.... \r\n\r\ncall 1.bat\r\ncall 2.bat\r\ncall 3.bat\r\n\r\necho on Create a Test DB finish....
❷ ANT腳本問題
首先去apache網站上下載ant的壓縮包,在本地解壓
現在最新的是apache-ant-1.7.1
假如說你解壓在了D盤,
目錄是這樣的
D:\apache-ant-1.7.1\bin
D:\apache-ant-1.7.1\docs
....................等,
那麼你將D:\apache-ant-1.7.1\bin添加到你電腦的path環境變數中.
這樣你在CMD下就可以使用ant命令了
下面我給你做了一個測試類,和一個測試build.xml
類:
package org.apache.ant.demo;
public class Test {
private String name = "";
private String passwd = "";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
}
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--首先是工程結點,定義工程名-->
<project name="javahelloant" default="jar" basedir=".">
<!--定義工程要用到的屬性名及匹配的值 org是我的源代碼放置的目錄,你看一下我的類應該能明白了,-->
<property name="src.dir" value="org"/>
<property name="classes.dir" value="classes"/>
<property name="javadoc.dir" value="docs"/>
<property name="jar.name" value="javahelloant.jar"/>
<!--定義任務名,depends是執行這個任務之前先執行哪個任務-->
<target name="jar" depends="compile">
<jar jarfile="${jar.name}" basedir="${classes.dir}"></jar>
</target>
<target name="compile">
<mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}" destdir="${classes.dir}"/>
</target>
<target name="javadoc">
<javadoc destdir="${javadoc.dir}">
<fileset dir="${src.dir}"/>
</javadoc>
</target>
<target name="clean">
<delete dir="${classes.dir}" />
<delete dir="${javadoc.dir}" />
<delete file="${jar.name}" />
</target>
</project>
類要建好包體結構,和build.xml放在一個文件夾里
如:
D:\ant\org\apache\ant\demo\Test.java
D:\ant\build.xml
這樣,你在開始運行里打CMD,
D:
cd ant
在這個目錄下執行ant這個命令
ant
或者帶參數
ant jar jar即你的任務名
以下是我的運行結果,請參考
I:\java\samples\ant>ant
Buildfile: build.xml
compile:
[javac] Compiling 1 source file to I:\java\samples\ant\classes
jar:
[jar] Building jar: I:\java\samples\ant\javahelloant.jar
BUILD SUCCESSFUL
Total time: 0 seconds
I:\java\samples\ant>ant jar
Buildfile: build.xml
compile:
[javac] Compiling 1 source file to I:\java\samples\ant\classes
jar:
[jar] Building jar: I:\java\samples\ant\javahelloant.jar
BUILD SUCCESSFUL
Total time: 0 seconds
I:\java\samples\ant>
ANT相當於是一個批處理程序,可以建立很多任務,我看說明文檔,它還可以自行發郵件,但我沒做過那麼復雜的,一般都是用來工程打包,你可以說的詳細點,幫你查一下,現在你這么說,我也不是很明白。。。。。。。
❸ ant是用來干什麼的
Apache Ant,是一個將軟體編譯、測試、部署等步驟聯系在一起加以自動化的一個工具,大多用於Java環境中的軟體開發。
Ant運行時需要一個XML文件, Ant通過調用target樹,就可以執行各種task。每個task實現了特定介面對象。
由於Ant構建文件 是XML格式的文件,所以很容易維護和書寫,而且結構很清晰。Ant可以集成到開發環境中。由於Ant的跨平台性和操作簡單的特點,它很容易集成到一些開發環 境中去。
(3)ant腳本命令擴展閱讀
Ant的depends屬性指定了target的執行順序。Ant會依照depends屬性中target出現順序依次執行 每個target。
在執行之前,首先需要執行它所依賴的target。程序中的名為run的target的 depends屬性compile,而名為compile的target的depends屬性是prepare,所以這幾個target執 行的順序是prepare->compile->run。
一個target只能被執行一次,即使有多個target依賴於它。如果沒有if或unless屬性target總 會被執行。
參考資料來源:網路-apache ant
❹ 如何使用Ant腳本編譯出Jar和Apk包
首先我們來看看如何使用ant腳本打出一個jar包 我們新建一個工程AntExportJar 在工程的目錄下面新建一個build.xml,這個是ant腳本規定的一個入口腳本文件,文件名都是:build.xml [html] view plain ?
<?xml version ="1.0" encoding ="UTF-8" ?>
<project name ="AntExportJar" basedir ="." default ="exportJar" >
????<!--?設置全局變數?-->
????<property name ="src" value ="src" />
????<property name ="dist" value ="dist" />
????<property name ="app.name" value ="ant" />
????<property name ="app.version" value ="1.0" />
????<property name ="classes.encode" value ="GBK" />
????<property name ="lib" value ="libs" />
????<property
????????name ="project-dir"
????????value ="C:\Users\i\workspace\AntExportJar" />
????<property
????????name ="sdk-folder"
????????value ="C:\Users\i\AppData\Local\android\sdk" />
????<property
????????name ="platform-folder"
????????value ="${sdk-folder}\platforms\android-22" />
????<property
????????name ="android-jar"
????????value ="${platform-folder}\android.jar" />
????<property
????????name ="src"
????????value ="${project-dir}\src" />
????<property
????????name ="bin"
????????value ="${project-dir}\bin" />
????<property
????????name ="libs"
????????value ="${project-dir}\lib" />
????<!--?task?-->
????<target name ="init" >
????????<echo>
????????????Initialize...
????????</echo>
????????<delete dir ="${bin}" />
????????<mkdir dir ="${bin}" />
????</target>
????<target name ="buildFiles" depends ="init" >
????????<javac
????????????????bootclasspath ="${android-jar}"
????????????????compiler ="javac1.7"
????????????????target ="1.7"
????????????????destdir ="${bin}"
????????????????encoding ="GBK"
????????????????includeAntRuntime ="true"
????????????????listfiles ="true" >
????????????????<src path ="${project-dir}" />
????????????????<classpath>
?????????????????????<!--?引用第三方jar包需要引用,用於輔助編譯,並沒有將jar打包進去。jar的打包在dex命令中。-->
?????????????????????<fileset dir ="${libs}" includes ="*.jar" />
????????????????</classpath>
????????</javac>
????</target>
????<!--?導出jar文件?-->
????<target name ="exportJar" depends ="buildFiles" >
????????<delete dir ="${dist}" />
????????<!--?Create?the?distribution?directory?-->
????????<mkdir dir ="${dist}" />
????????<!--?Put?everything?in?${classes}?into?the?MyProject-${DSTAMP}.jar?file?-->
????????<jar jarfile ="${dist}/${app.name}.jar" basedir ="${bin}" >
????????????<!--
????????????<fileset?dir="${libs}"?includes="**/*.jar"?/>
????????????-->
????????????<zipfileset excludes ="META-INF/*.SF" src ="${libs}/Bai_NativeAd_SDK.jar" />
????????????<zipfileset excludes ="META-INF/*.SF" src ="${libs}/gdt_mob_release.jar" />
????????</jar>
????</target>
</project>
腳本很簡單,下面我們就來分析一下: [html] view plain ?
<project name ="AntExportJar" basedir ="." default ="exportJar" >
最外圍的一個標簽是project,是一個工程標簽,有名字,還有就是工程的目錄baseDir,用點號:"." 接下來就是定義全局變數,或者是屬性值: [html] view plain ?
<!--?設置全局變數?-->
<property name ="src" value ="src" />
<property name ="dist" value ="dist" />
<property name ="app.name" value ="ant" />
<property name ="app.version" value ="1.0" />
<property name ="classes.encode" value ="GBK" />
<property name ="lib" value ="libs" />
<property
????name ="project-dir"
????value ="C:\Users\i\workspace\AntExportJar" />
<property
????name ="sdk-folder"
????value ="C:\Users\i\AppData\Local\Android\sdk" />
<property
????name ="platform-folder"
????value ="${sdk-folder}\platforms\android-22" />
<property
????name ="android-jar"
????value ="${platform-folder}\android.jar" />
<property
????name ="src"
????value ="${project-dir}\src" />
<property
????name ="bin"
????value ="${project-dir}\bin" />
<property
????name ="libs"
????value ="${project-dir}\lib" />
這樣我們在後面就可以使用:${name值} 來使用value值的定義了,所以這里就相當於定義了變數的作用,這里我們看到有一些value值是路徑,但是這里我們感覺有一個不好的地方,就是這些路徑是寫死的,那麼我們還可以怎麼做能讓他變得靈活呢?其實很簡單,ant腳本中是可以訪問環境變數的,那麼我們只要將這些路徑定義成環境變數就可以了: [html] view plain ?
<property environment ="env" />
<property name ="ANDROID_HOME" value ="${env.ANDROID_HOME}" />
第一行先申明一個環境變數值,這個env是公共的寫法,也是ant自帶的,他表示當前的環境變數的值,那麼後面就可以訪問具體的哪些環境變數了,比如這里我配置了ANDROID_HOME這個環境變數,那麼就可以用${env.ANDROID_HOME}來訪問androidsdk的目錄了,和上面的那個直接使用絕對路徑的方式是一樣的。 解析來就是定義task了,在ant中task也是最重要的,我們最終運行的都是task,就相當於Java中的main方法一樣。ant腳本中可以定義多個task,而且每個task可以有執行的先後順序的。相當於Java中的方法中調用其他方法一樣。 [html] view plain ?
<!--?task?-->
<target name ="init" >
????<echo>
????????Initialize...
????</echo>
????<delete dir ="${bin}" />
????<mkdir dir ="${bin}" />
</target>
首先這里定義了一個初始化的task,其中echo標簽也是很常用的,就是列印信息的,然後是刪除目錄${bin},這個bin變數在上面已經定義了,然後在創建${bin}目錄。 初始化完之後,開始執行編譯工作: [html] view plain ?
<target name ="buildFiles" depends ="init" >
????<javac
????????bootclasspath ="${android-jar}"
????????compiler ="javac1.7"
????????target ="1.7"
????????destdir ="${bin}"
????????encoding ="GBK"
????????includeAntRuntime ="true"
????????listfiles ="true" >
????????<src path ="${project-dir}" />
????????????<classpath>
????????????????<!--?引用第三方jar包需要引用,用於輔助編譯,並沒有將jar打包進去。jar的打包在dex命令中。-->
????????????????<fileset dir ="${libs}" includes ="*.jar" />
????????????</classpath>
????</javac>
</target>
這里在此定義一個buildFiles的task,depends的值是表示當前的task在這個depends的task執行完之後在執行,這里就是先執行init的task,然後在執行buildFiles的task,這里的task主要是編譯Java成class文件: bootclasspath:表示編譯依賴的系統庫,這里依賴的是android.jar compiler:表示編譯的java版本 target:表示編譯之後的class的版本,就是能夠運行的java版本 destDir:表示編譯之後的class文件的存放目錄 其他的就不說了,這里還有一個重點,也就是我們在編譯的時候會遇到的問題,就是我們在編譯的時候,會引用到第三發的jar,所以這里我們為了保證能夠編譯過,這里還必須用classpath標簽來引用這些jar,當然這里只是能夠保證編譯通過,並不會把這些jar也編譯到最終我們想要的jar中,這個問題我們後面再說。 下面在看最後的一個task,就是將編譯完之後的class文件打包成jar文件: [html] view plain ?
<!--?導出jar文件?-->
<target name ="exportJar" depends ="buildFiles" >
????<delete dir ="${dist}" />
????<!--?Create?the?distribution?directory?-->
????<mkdir dir ="${dist}" />
????<!--?Put?everything?in?${classes}?into?the?MyProject-${DSTAMP}.jar?file?-->
????<jar jarfile ="${dist}/${app.name}.jar" basedir ="${bin}" >
????????<!--
????????<fileset?dir="${libs}"?includes="**/*.jar"?/>
????????-->
????<zipfileset excludes ="META-INF/*.SF" src ="${libs}/Bai_NativeAd_SDK.jar" />
????<zipfileset excludes ="META-INF/*.SF" src ="${libs}/gdt_mob_release.jar" />
????</jar>
</target>
這里我們定義了一個exportJar的task,他是在buildFiles的task運行完之後在運行。 首先刪除目標目錄${dist},然後在創建一個目錄。這個目錄就是存放最後編譯好的jar文件的目錄 然後就是用jar標簽來導出jar文件了: jarfile:表示編譯完之後存放的jar文件名路徑 basedir:表示需要編譯jar的class文件目錄 其他就OK了,但是在實際中我們在編譯的過程中會引用到第三方的jar,那麼這時候我們把這些jar編譯到最終的jar中,說道這里,其實我們在使用Eclipse導出jar的時候,有一個插件可以做到這點:fat-jar,安裝完插件
❺ ant腳本build.xml中path怎麼使用
在文件里填上你的ant命令的全路徑即可,因為ant默認讀取的是build.xml文件,所以你就不需要攜帶參數了。把這個文件和build.xml放在同一個目錄即可。
❻ 如何用ant執行jmeter腳本
1、下載ant
2、配置環境變數
以windows下配置為例
①配置ant環境變數
ANT_HOME=D:Program Filesapache-ant-1.10.0
CLASSPATH=%ANT_HOME%lib
Path=%ANT_HOME%in
②檢查ant是否配置成功:命令行輸入ant -version
3、將JMeter的extras目錄中ant-jmeter-1.1.1.jar包拷貝至ant安裝目錄下的lib目錄中
4、修改JMeter的bin目錄下jmeter.properties文件的配置:jmeter.save.saveservice.output_format=xml
5、新建一個腳本存放目錄,以及報告存放目錄report,將*.jmx(已經調試OK的腳本)拷貝此目錄
6、在創建的目錄下新建一個build.xml文件(ant自動構建文件)
7、cmd進入腳本上面創建的目錄。(即build.xml所在的目錄)
8、輸入:ant 或 ant run(run為build.xml中的task名),即可執行腳本並生成報告
❼ eclipse中ant怎麼使用
用 Eclipse3.1 來創建 Ant 腳本
如果你使用 Eclipse 來編寫 Ant,建議使用 Eclipse 3.1 以後的版本。除了以前 Ant 編輯器提供的語法高亮,提示語法錯誤等功能外,Eclipse3.1 版本增加了許多新的功能。比如:腳本代碼的折疊;快速定位某屬性或者目標(target)段的定義;在同一 builder 文件中重構屬性名和目標名(快捷方式 Alt + Shift +R);調試 Ant 腳本等。
下面我們就來看看 Eclipse 3.1 中對 Ant 的支持
打開「File」-「New」-「Project」-「Simple」-「Project」,點擊「Next」,輸入工程名「Ant」,然後點擊直到「Finish」
在新建的 Ant 工程中,新建 Test.xml,並且拷貝下面的腳本。該段腳本的內容就不做介紹了,我們主要看 Eclipse 提供了哪些功能。注意這時候打開的並不是 Ant 編輯器,將內容拷貝進去之後,關掉打開的「Test.xml」,然後再重新打開它,這樣 Eclipse 就會用 Ant 編輯器打開它,並且也語法高亮了。
<?xml version="1.0" encoding="UTF-8"?>
<project name="Test" default="init" basedir=".">
<property name="test" value="test"/>
<target name="init">
<echo>${test}</echo>
</target>
</project>
自動提示和代碼折疊功能。如果是 Ant 內置的命令或者前面已經定義的變數,編輯器會自動提示;編輯器右邊的加 / 減號可以代碼折疊。如下所示:
快速定位目標(target)或者定義變數處。在上圖中,將滑鼠移至 default=」init」 中的 init 上之後,按下 ctrl 鍵,滑鼠變成手狀,單擊就可以定位到定義該目標的地方
快速重構目標名或者屬性名。選中目標 / 屬性名,按下 Alt + Shift + R,然後鍵入你要修改後的值,所有引用到的地方都會隨之改動。如下圖所示,選中 init 後,按下快捷鍵,改成 initial:
調試 Ant 腳本。在標簽「<target name=..」的左邊設置一斷點,然後在編輯器中右擊,出現的菜單中選「Debug As」-「Ant Build」,出現後的窗口與調試 Java 程序的界面差不多。
這是調試窗口,這里可以選擇單步跟進、跳出等:
下面是運行時變數窗口。可以看到 test 變數的值是「test」:
運行結果窗口:
由此可見,如果使用好 Eclipse Ant 編輯器所提供強大的功能的話能大大提高寫 Ant 腳本的效率。
回頁首
Ant 中使用 property(屬性)文件
剛開始寫 Ant 的初學者可能會把所有的信息都放在 build.xml 中,下面就是這樣的一個例子。
<project name="testBuild" default="compile" basedir=".">
<target name="init">
<mkdir dir="c:/temp/dest/testProj" />
</target>
<target name="compile" depends="init">
<javac srcdir="c:/temp/src/testProj" destdir="c:/temp/dest/testProj "/>
<echo>Build into c:/temp/dest/testProj, successfully.</echo>
</target>
</project>
在上面的例子中,所有的路徑信息都是寫在 build.xml 中。但是 Ant 腳本可能在不同的機器或者不同的系統上運行,也有可能一些值需要根據環境的不同而變化,在 Ant 中可以把所有這些可能變化的地方都放到一個配置文件中,然後在 Ant 腳本中引用這個配置文件就可以了,針對上面的例子,如下所示:
<project name="testBuild" default="compile" basedir=".">
<property file="build.properties"/>
<target name="init">
<mkdir dir="${dest.dir}" />
</target>
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${dest.dir}"/>
<echo>Build into ${dest.dir}, successfully.</echo>
</target>
</project>
build.properties 的內容:
dest.dir=c:/temp/dest/testProj
src.dir=c:/temp/src/testProj
如果想在 Ant 腳本中引用值的話,只需用 $ 符號開頭,在一對"{}"中寫入要引用的鍵值。如上例中,需要引用編譯的目標路徑用"${dest.dir}"。
回頁首
使用 Ant 任務從 CVS 中檢出(check out)源代碼,並編譯打包
Ant 中提供了 cvs 任務(Task)可以從 CVS 伺服器中檢出資源(注意:在使用 Ant 的 cvs 任務之前,請先將 cvs.exe 下載到你的機器,並且將它添加到你本地的 PATH 環境變數中,然後重新啟動 Eclipse。否則在執行下面腳本的時候就會得到 error=2 的錯誤)。cvs 的可選用屬性很多,在這里介紹經常使用到的幾個屬性。從 CVS 中檢出資源一般需要指定:
CVS 所在的伺服器地址:目標 CVS 伺服器地址
用戶名:登錄該 CVS 伺服器你指定的用戶名
密碼:登錄該 CVS 伺服器需要的密碼
庫路徑(Repository Path):伺服器中的庫路徑
模塊名:當前需要檢出的模塊名,一般都是以工程的名字作為模塊名
標簽名:需要從 CVS 中檢出哪個標簽
在介紹使用 Ant 的 cvs 之前,先說一下本地的目錄結構。在 C 盤的 temp 目錄下,分別有四個目錄,如下所示:
build 目錄:放編譯後的類以及資源文件
dist 目錄:放生成的 jar 文件或者 war 文件
lib 目錄:放在編譯過程中需要用到的 jar 文件
src 目錄:放從 cvs 中檢出的源文件(包括 JSP 等)
在 Ant 中這樣寫就可以從中檢出資源:
<cvs cvsRoot=":pserver:username:[email protected]:/home/testPath"
package="TestProj" dest=" c:/temp/src/testProj " failonerror="true" />
這段腳本片斷的意思就是從叫"cvs.server"的伺服器中,用用戶名是 username、密碼為 pwd 的用戶檢出在庫路徑是 /home/testPath 下的 TestProj 模塊(項目),檢出後的資源放入本地目錄 c:/temp/src/testProj 中。在上面這段腳本中,可以看到有很多值可能會根據不同的環境或者用戶隨之改變的,比如用戶名和密碼等;而且從腳本的重復可利用性來說,需要把有些值抽出來放到配置文件中,如伺服器的地址和庫路徑等。因此把這些可能需要更改的地方放到 property 文件中,效果會更好。改完後的完整 Ant 腳本如下所示:
<?xml version="1.0"?>
<project name="testWeb" default="checkout" basedir=".">
<target name="checkout">
<property file="TestWeb.properties" />
<cvs cvsRoot="${cvs.root}" package="${cvs.projectName}"
tag="${cvs.tag}" dest="${src.dir}" failonerror="true" />
</target>
</project>
❽ ant腳本文件的時候,如何忽略空文件
可以通過includeEmptyDirs:用於指定是否復制空目錄文件。默認為true。
< todir="${basedir}/new" includeEmptyDirs="false">
<fileset dir="${basedir}/old" >
<include name="appgen" />
<include name="appgen/" />
<include name=appgen/**" />
<include name="appgen/***" />
</fileset>
</>
通過這個屬性,只要是空路徑的文件都不會被復制。
❾ ant腳本如何調用LINUX命令,例如我要切換用戶su - zhangsan
以ls為例:
<?xml version="1.0" ?>
<project name="testExec" default="test">
<target name="test">
<exec executable="ls"/>
</target>
</project>
也可以指明由Shell調用
<?xml version="1.0" ?>
<project name="testExec" default="test">
<target name="test">
<exec executable="/bin/sh">
<arg line="-c ls" />
</exec>
</target>
</project>
❿ 使用ant腳本打包android項目,包含library項目,如何設置依賴項目
設置方法如下:
1.生成R.java類文件:
Eclipse中會自動生成R.java,ant和命令行使用android SDK提供的aapt.ext程序生成R.java;
2.將.aidl文件生成.java類文件:
Eclipse中自動生成,ant和命令行使用android SDK提供的aidl.exe生成.java文件;
3.編譯.java類文件生成class文件:
Eclipse中自動生成,ant和命令行使用jdk的javac編譯java類文件生成class文件;
4.將class文件打包生成classes.dex文件:
Eclipse中自動生成,ant和命令行使用android SDK提供的dx.bat命令行腳本生成classes.dex文件;
5.打包資源文件:
Eclipse中自動生成,ant和命令行使用Android SDK提供的aapt.exe生成資源包文件;
6.生成未簽名的apk安裝文件:
Eclipse中自動生成debug簽名文件存放在bin目錄中,ant和命令行使用android SDK提供的apkbuilder.bat命令腳本生成未簽名的apk安裝文件;
7.對未簽名的apk進行簽名生成簽名後的android文件就可以了。