亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Ant工具的使用和說(shuō)明

系統(tǒng) 2147 0

Ant是什么

Ant是Apache的一個(gè)開(kāi)源項(xiàng)目。它是一個(gè)跨平臺(tái)的工具,主要用于項(xiàng)目項(xiàng)目的自動(dòng)編譯和打包和測(cè)試等。

Ant的優(yōu)點(diǎn)

1.與平臺(tái)無(wú)關(guān),因?yàn)樗腔贘AVA開(kāi)發(fā)的。

2.腳本格式是基于XML,維護(hù)起來(lái)相對(duì)簡(jiǎn)單。

Ant的安裝

1.在Apache的官網(wǎng)下載

??? http://www.apache.org/dist/ant/binaries/ ?選擇最新的 apache-ant-1.7.1-bin.zip

2.解壓安裝

?? 解壓到本機(jī)目錄,如D:Ant

?? 1.運(yùn)行----cmd

?? 2.配置環(huán)境變量

???????? set JAVA_HOME=JDK安裝路徑

???????? set ANT_HOME = D:Ant (Ant的安裝路徑)

?? 3.配置系統(tǒng)變量

???????? set PATH=%PATH%;%JAVA_HOME%\bin;%ANT_HOME%\bin

???????? 注意,一定要加上 %PATH%;

????4.測(cè)試

???????? 直接在cmd窗口中輸入ant -version,然后回車即可看到當(dāng)前ant的版本信息

Ant的基本元素

?Ant是基于XML文件編寫的,默認(rèn)使用的文件為build.xml。下面拿一個(gè)簡(jiǎn)單的HelloWorld示例來(lái)演示。

??? 1.E:build.xml如下:

??????????

    <?xml version="1.0" ?>
<project name="HelloWorld">
     <target name="test">
          <echo message="Hello,World!" />
     </target>
</project>
  

??? 2.cmd----進(jìn)入E盤----運(yùn)行ant test--出現(xiàn)以下提示:????????

??????????? Buildfile: build.xml

??????????? test:
??????????????? [echo] Hello,World!

??????????? BUILD SUCCESSFUL
??????????? Total time: 0 seconds

如果配置文件不是build.xml,而是test.xml,此時(shí)需要在ant后面加上一個(gè)參數(shù)ant -f test.xml test,-f 后面帶的參數(shù)就是配置文件的文件名。

Ant配置文件關(guān)鍵屬性的解析

1.project

????project是Ant文件的根元素,必須包含至少一個(gè)project。在project下可以包含多個(gè)target。

??? 它主要有以下屬性

?????? 1) name

????????????? 用來(lái)指定project元素的名稱

?????? 2)default

????????????? 定義ant命令默認(rèn)執(zhí)行的target

?????? 3)basedir

????????????? 用于指定運(yùn)行的基本路徑信息。若未定義則為ANT_HOME

???? 修改上面的build.xml,如下:

?

    <?xml version="1.0" ?>
<project name="HelloWorld" default="test1" basedir="D:wsdl">
     <target name="test">
          <echo message="Hello,World!" />
     </target>
     <target name="test1">
          <echo message="Hello,${basedir}" />
     </target>
</project>

  

?

??? cmd---E:-----ant--回車顯示:?

??????? Buildfile: build.xml

??????? test1:
??????????? [echo] Hello,D:\wsdl

????????????BUILD SUCCESSFUL
??????? Total time: 0 seconds

???? 從結(jié)果很明顯可以看出名字為test的target并沒(méi)有執(zhí)行,執(zhí)行的是default定義的test1。而basedir屬性也打印出來(lái)了,為D:\wsdl。注意:屬性值的取法為${屬性名}

2.target

?? target是Ant執(zhí)行的任務(wù)單元,一個(gè)target里有一個(gè)或者多個(gè)任務(wù)。

???它主要有如下屬性:

??????? 1)name

????????????? 定義target的名字,這個(gè)名稱在一個(gè)project中是唯一的。ant可以根據(jù)target的name來(lái)定位target。

??????? 2)depends

???????????? 當(dāng)targetA的執(zhí)行需要targetB的運(yùn)行結(jié)果時(shí),可以定義targetA依賴于targetB,執(zhí)行時(shí)B會(huì)先執(zhí)行。

??????? 3)if

???????????? 判斷屬性是否存在,存在則執(zhí)行target,否則不執(zhí)行。

????????4)unless

???????????? 與if相反,判斷屬性是否不存在,不存在執(zhí)行target,否則不執(zhí)行。

??????? 5)description

???????????? 對(duì)當(dāng)前target的描述

?????? 修改上面的build.xml文件如下:

??????????????

    <?xml version="1.0" ?>
<project name="HelloWorld" default="test1" basedir="D:wsdl">
     <target name="test">
          <echo message="Hello,World!" />
     </target>
     <target name="test1" depends="test" if="t" description="this is test1">
          <echo message="Hello,${basedir}" />
     </target>
</project>
  

?

??? cmd --- E:----ant---回車顯示:

????? Buildfile: build.xml

????? test:
???????? [echo] Hello,World!

????? test1:

??????BUILD SUCCESSFUL
????? Total time: 0 seconds

??? 因?yàn)閠est1依賴于test,所以會(huì)先執(zhí)行test,由于t這個(gè)屬性并不存在,所以test1不會(huì)執(zhí)行。如果將上面的if改成unless,則test1和test都會(huì)執(zhí)行。

3.property

????? property是用來(lái)定義屬性名稱及屬性值的。它有兩種方式定義,第一種直接在build.xml文件中定義;第二種是在外部屬性文件里定義,然后在build.xml中引入。如test.properties,引入 <property file=” test.properties”/>。test.properties的格式為name=value。

?????? 修改上面的build.xml文件如下:

?

    <?xml version="1.0" encoding="UTF-8"?>
<project default="test" basedir=".">	
        <property file="build.properties" />
        <property  name ="name"  value ="fer2005"/> 
        <property  name ="age"  value ="30"/> 
	<target name="classes">
		<echo message="name:${name} age:${age}" />
	</target>	
</project>
  

??? 運(yùn)行顯示:

????????? Buildfile: build.xml

??????????test:
????????????? [echo] name:fer2005 age:30

????????? BUILD SUCCESSFUL
????????? Total time: 0 seconds

Ant的主要任務(wù)

???????? ?1.echo

???????????? 輸出信息,有四個(gè)屬性:message file append?level

????????????? message:需要打印的消息

????????????? file:需要將打印的信息放入哪個(gè)文件

????????????? append:是否將消息追加到文件末尾,true追加,false則直接替換

????????????? level:消息輸出的控制級(jí)別,有info,warning,error

????????? 修改build.xml文件如下:

?????????????

    <?xml version="1.0" encoding="UTF-8"?>
<project default="test" basedir=".">	
        <property file="build.properties" />
        <property  name ="name"  value ="fer2005"/> 
        <property  name ="age"  value ="30"/> 
	<target name="test">
		<echo message="name:${name} age:${age}" />
		<echo message="this is a echo test" file="test.txt" append="true" />
	</target>	
</project>

  

??????? ?運(yùn)行,然后結(jié)果在E:test.txt中去查看。可以看見(jiàn)在test.txt中有this is a echo test。重新運(yùn)行一次,則會(huì)有兩個(gè)this is a echo test。若將append屬性去掉重新運(yùn)行則又只有一個(gè)this is a echo test了。

????????? 2.mkdir

???????????????新建目錄,只有一個(gè)屬性

??????????????? dir:定義新建的文件夾名稱。

???????????????

       <mkdir dir="test" />
  

?????????????3.delete

???????????????? 刪除目錄或文件,有四個(gè)屬性

???????????????? file:所要?jiǎng)h除的文件

?????????????????dir:只有找一個(gè)屬性時(shí),刪除指定的目錄

???????????????? includeEmptyDirs:是否包含空目錄

???????????????? includes:包含何種類型的文件,可以使用通配符,與windows系統(tǒng)中的搜索功能相似。

???????????????? 修改build.xml如下:

?

    <?xml version="1.0" encoding="UTF-8"?>
<project default="test" basedir=".">		
	<target name="test">
		<delete includeEmptyDirs="true" dir="." includes="*.txt"></delete>
	</target>
</project>

  

?

????????????? 刪除當(dāng)前目錄下的空目錄和所有txt文件。

????????????? 也可以寫成這種格式:

???????????????????

    <?xml version="1.0" encoding="UTF-8"?>
<project default="test" basedir=".">		
      <target name="test">
           <delete includeEmptyDirs="true"> 
               <fileset dir="." includes="*.txt"/> 
           </delete>
      </target>
</project>

  

?

?

??????????? 4.copy

??????????????? 復(fù)制文件或目錄,主要有四個(gè)屬性

????????????????? ?file:需要復(fù)制的文件

?????????????????? tofile:復(fù)制好的新文件

?????????????????? dir:需要復(fù)制的目錄

?????????????????? todir:復(fù)制到新的目錄

???????????????復(fù)制文件???????????????

    <copy file="build.xml" tofile="test.xml"></copy>
  

??????????????? 復(fù)制目錄

      <copy todir="../testnewdir"> 
            <fileset dir="testsrcdir"/> 
  </copy>

  

??????????????? 復(fù)制文件到目錄?

    <copy file="test.txt" todir="../newdir"/>
  

?

????????????? 5.move

?

?????????????????? 移動(dòng)文件或目錄,與copy類似

???????? 移動(dòng)單個(gè)文件(重命名):????????????????????

    <move file="srcfile" tofile="newfile"/>
  

????????????????????

????????? 移動(dòng)文件到另一目錄:

     <move file="srcfile" todir="newdir"/>
  

??移動(dòng)目錄: ???????

    <move todir="newdir"> 
           <fileset dir="srcdir"/> 
</move>

  

?

?利用Ant對(duì)Java程序的編譯和打包

?? 1.Java程序編譯

???????????javac命令

???????????使用方法如下:

?????????? IDE:Eclipse

??????????? 1.新建Java工程。如TestAnt

????????????如圖所示:

????????????????????? 新建Java工程的結(jié)構(gòu)圖

??????????????????2.新建類Test.java

??????????????????????

    package com.fer2005.test;

public class Test {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("this a test class");
	}
}
  

?

???????????????? 3.在工程TestAnt目錄下新建build.xml文件

????????????????????

    <?xml version="1.0" encoding="UTF-8"?>
 <project  name ="TestAnt" default ="compile"  basedir ="."> 
     <target  name ="clean"> 
        <delete  dir ="build"/> 
     </target> 
     <target  name ="compile"  depends ="clean"> 
        <mkdir  dir ="build/classes"/> 
     <javac  srcdir ="src"  destdir ="build/classes"/> 
     </target> 
</project > 
  

???????????????執(zhí)行compile前必須先刪除build文件夾,然后通過(guò)mkdir建立文件夾,javac編譯當(dāng)前程序,保存的路徑是build下的classes目錄下。???

?????????????? 4.在build.xml上右鍵Run As---Ant Build

?????????????? 5.刷新工程,即可看見(jiàn)生成文件夾和class文件。如圖所示:

????????????????????? javac后的工程目錄結(jié)構(gòu)

?

?????????????? java命令

????????????????????運(yùn)行程序,執(zhí)行類中的main方法。修改build.xml:

?????????????????????????

    <?xml version="1.0" encoding="UTF-8"?>
<project name="TestAnt" default="run" basedir=".">
	<target name="clean">
		<delete dir="build" />
	</target>
	<target name="compile" depends="clean">
		<mkdir dir="build/classes" />
		<javac srcdir="src" destdir="build/classes" />
	</target>
	<target name="run" depends="compile">
		<java classname="com.fer2005.test.Test">
			<classpath>
				<pathelement path="build/classes" />
			</classpath >
		</java >
	</target >
</project >
  

????????????????? 然后按上面的方法Ant build,打印出如下信息:

??????????????????????? Buildfile: D:\workspace\TestAnt\build.xml
???????????????????????????? clean:
??????????????????????????????????? [delete] Deleting directory D:\workspace\TestAnt\build
???????????????????????????? compile:
??????????????????????????????????? [mkdir] Created dir: D:\workspace\TestAnt\build\classes
????????????????????????????????????[javac] Compiling 1 source file to D:\workspace\TestAnt\build\classes
???????????????????????????? run:
??????????????????????????????????? [java] this a test class
?????????????????????????BUILD SUCCESSFUL
???????????????????????? Total time: 641 milliseconds

??????????????????????? jar

????????????????????????對(duì)java工程進(jìn)行打包,修改build.xml:

???????????????????????

    <?xml version="1.0" encoding="UTF-8"?>
<project name="TestAnt" default="jar" basedir=".">
	<target name="clean">
		<delete dir="build" />
	</target>
	<target name="compile" depends="clean">
		<mkdir dir="build/classes" />
		<javac srcdir="src" destdir="build/classes" />
	</target>
	<target name="run" depends="compile">
		<java classname="com.fer2005.test.Test">
			<classpath>
				<pathelement path="build/classes" />
			</classpath >
		</java >
	</target >
	<target name="jar" depends="run">
		<jar destfile="TestAnt.jar" basedir="build/classes">
			<manifest>
				<attribute name="Main-class" value="com.fer2005.Test" />
			</manifest >
		</jar >
	</target>
</project >
  

?

???????????????????? 運(yùn)行完成后可以看見(jiàn)生成的jar包。

?

????????????2.Java Web?工程的編譯和打包

??????????????? 1.新建一個(gè)web工程,結(jié)構(gòu)圖如下:

?

????????????????????????? ? web工程結(jié)構(gòu)

??????????????????????2.修改build.xml

?????????????????????????????

    <?xml version="1.0" ?>
<project name="TestAnt" default="war" basedir=".">
	<target name="clean">
		<delete dir="build" />
	</target>
	<target name="compile" depends="clean">
		<mkdir dir="build/classes" />
		<javac srcdir="src" destdir="build/classes" />
	</target>
	<target name="run" depends="compile">
		<java classname="com.fer2005.test.Test">
			<classpath>
				<pathelement path="build/classes" />
			</classpath >
		</java >
	</target >
	<target name="jar" depends="run">
		<jar destfile="TestAnt.jar" basedir="build/classes">
			<manifest>
				<attribute name="Main-class" value="com.fer2005.Test" />
			</manifest >
		</jar >
	</target>
	<target name="war" depends="jar">
		<war  destfile ="build/TestAntWeb.war"  webxml ="WebRoot/WEB-INF/web.xml"> 
		     <fileset  dir ="WebRoot"  includes ="**/*.jsp"/> 
		            <lib  dir ="WebRoot/WEB-INF/lib"/> 
		            <classes dir="build/classes"/> 
		        </war> 
		</target>
</project >

  

?

?????????????????????? war

????????????????????????????? destfile:生成的war包的路徑和文件名

?????????????????????????????? webxml:web工程的配置文件web.xml所在路徑

?????????????????????????????? <fileset? dir ="WebRoot"? includes ="**/*.jsp"/> :打包webroot下的所有jsp文件

???????????????????????????????lib:包所在的路徑

????????????????????????????? ?classes:JAVA編譯后的類文件路徑。

???????????????????3.運(yùn)行即可得到war包TestAntWeb.war。

?????????????????? 4.將TestAntWeb.war放到%TOMCAT_HOME%\webapps下,啟動(dòng)tomcat測(cè)試war包是否可用。

???

?

?

?

Ant工具的使用和說(shuō)明


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 有码中文字幕在线观看 | 欧美19p| 亚洲欧美日韩激情在线观看 | 国产精品第一 | 国产成人精品视频免费 | 激情 婷婷 | 亚洲成人在线免费观看 | 国产午夜偷精品偷伦 | 99热影院| 久久久久国产一级毛片高清板 | 精品久久久99大香线蕉 | 大伊香蕉在线精品不卡视频 | 成人久久久观看免费毛片 | 国产成人免费不卡在线观看 | 五月婷婷视频在线 | 日韩一级黄色影片 | 四虎影院国产 | 亚洲不卡在线视频 | 国产福利在线观看 | 91在线欧美 | 日本猛妇色xxxxx在线 | 久草精彩视频 | 精品亚洲视频在线观看 | 一区二区亚洲精品 | 最近中文字幕在线视频1 | 国产真实乱子伦精品视 | 欧美 日韩 国产在线 | 中文字幕在线不卡视频 | 日本aaaa级毛片在线看 | 草草国产成人免费视频 | 亚洲综合色自拍一区 | 亚洲天堂福利视频 | 激情亚洲婷婷 | 欧美精品99 | 午夜亚洲国产理论秋霞 | 欧美成人精品一级高清片 | 免费播放美女一级毛片 | 欧洲一级黄色片 | 亚洲精品αv一区二区三区 亚洲精品爱爱久久 | 久青草国产在线视频亚瑟影视 | 亚洲综合日韩在线亚洲欧美专区 |