欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Ant工具的使用和說明

系統 1957 0

Ant是什么

Ant是Apache的一個開源項目。它是一個跨平臺的工具,主要用于項目項目的自動編譯和打包和測試等。

Ant的優點

1.與平臺無關,因為它是基于JAVA開發的。

2.腳本格式是基于XML,維護起來相對簡單。

Ant的安裝

1.在Apache的官網下載

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

2.解壓安裝

?? 解壓到本機目錄,如D:Ant

?? 1.運行----cmd

?? 2.配置環境變量

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

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

?? 3.配置系統變量

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

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

????4.測試

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

Ant的基本元素

?Ant是基于XML文件編寫的,默認使用的文件為build.xml。下面拿一個簡單的HelloWorld示例來演示。

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

??????????

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

??? 2.cmd----進入E盤----運行ant test--出現以下提示:????????

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

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

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

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

Ant配置文件關鍵屬性的解析

1.project

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

??? 它主要有以下屬性

?????? 1) name

????????????? 用來指定project元素的名稱

?????? 2)default

????????????? 定義ant命令默認執行的target

?????? 3)basedir

????????????? 用于指定運行的基本路徑信息。若未定義則為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

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

2.target

?? target是Ant執行的任務單元,一個target里有一個或者多個任務。

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

??????? 1)name

????????????? 定義target的名字,這個名稱在一個project中是唯一的。ant可以根據target的name來定位target。

??????? 2)depends

???????????? 當targetA的執行需要targetB的運行結果時,可以定義targetA依賴于targetB,執行時B會先執行。

??????? 3)if

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

????????4)unless

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

??????? 5)description

???????????? 對當前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

??? 因為test1依賴于test,所以會先執行test,由于t這個屬性并不存在,所以test1不會執行。如果將上面的if改成unless,則test1和test都會執行。

3.property

????? property是用來定義屬性名稱及屬性值的。它有兩種方式定義,第一種直接在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>
  

??? 運行顯示:

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

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

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

Ant的主要任務

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

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

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

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

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

????????????? level:消息輸出的控制級別,有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>

  

??????? ?運行,然后結果在E:test.txt中去查看。可以看見在test.txt中有this is a echo test。重新運行一次,則會有兩個this is a echo test。若將append屬性去掉重新運行則又只有一個this is a echo test了。

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

???????????????新建目錄,只有一個屬性

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

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

       <mkdir dir="test" />
  

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

???????????????? 刪除目錄或文件,有四個屬性

???????????????? file:所要刪除的文件

?????????????????dir:只有找一個屬性時,刪除指定的目錄

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

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

???????????????? 修改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>

  

?

????????????? 刪除當前目錄下的空目錄和所有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

??????????????? 復制文件或目錄,主要有四個屬性

????????????????? ?file:需要復制的文件

?????????????????? tofile:復制好的新文件

?????????????????? dir:需要復制的目錄

?????????????????? todir:復制到新的目錄

???????????????復制文件???????????????

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

??????????????? 復制目錄

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

  

??????????????? 復制文件到目錄?

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

?

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

?

?????????????????? 移動文件或目錄,與copy類似

???????? 移動單個文件(重命名):????????????????????

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

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

????????? 移動文件到另一目錄:

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

??移動目錄: ???????

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

  

?

?利用Ant對Java程序的編譯和打包

?? 1.Java程序編譯

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

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

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

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

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

????????????????????? 新建Java工程的結構圖

??????????????????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 > 
  

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

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

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

????????????????????? javac后的工程目錄結構

?

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

????????????????????運行程序,執行類中的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

????????????????????????對java工程進行打包,修改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 >
  

?

???????????????????? 運行完成后可以看見生成的jar包。

?

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

??????????????? 1.新建一個web工程,結構圖如下:

?

????????????????????????? ? web工程結構

??????????????????????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.運行即可得到war包TestAntWeb.war。

?????????????????? 4.將TestAntWeb.war放到%TOMCAT_HOME%\webapps下,啟動tomcat測試war包是否可用。

???

?

?

?

Ant工具的使用和說明


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品欧美亚洲日本综合 | 成人精品一区 | 加勒比色综合 | 欧美极品在线观看 | 梦中人在线观看免费完整版 | 99久久免费费视频在线观看 | 91视频最新网站 | 2022国产成人精彩在线视频 | 亚洲 欧美 日韩在线 | 一级黄色大全 | www日日日 | 成人欧美日韩一区二区三区 | 亚洲午夜在线视频 | 国产一区二区三区在线 | 丁香亚洲 | 精品视频第一页 | 亚洲国产成人在线 | 国产精品视频在线播放 | 日本三级香港三级乳网址 | 三级视频网站 | 亚洲欧美精品中字久久99 | 久久久久久全国免费观看 | 久久精品视频在线观看榴莲视频 | 粉色视频高清大全免费观看1 | www.夜夜骑 | 69国产精品视频免费 | 夜夜爱夜夜操 | 在线看免费观看日本 | 亚洲国产片高清在线观看 | 国产天堂网| 免费xxxx日本大片在线观看 | 精品不卡 | 超级碰97| 一级做性色a爰片久久毛片 亚洲午夜精品久久久久久app | 日本三级香港三级网站 | 亚洲福利电影网 | 不卡久久 | 四虎1515hhhcom | aaaaa国产毛片 | 日韩欧美亚洲 | 欧美free性 |