當前位置:首頁 » 編程軟體 » 在伺服器用ant怎麼編譯項目

在伺服器用ant怎麼編譯項目

發布時間: 2022-06-09 23:27:05

㈠ 如何在伺服器上部署ant,進行代碼編譯打包

不知道你是用什麼工具打包,eclipse的話其他網友已經回答了,同時也可以使用maven和ant進行編譯打包。部署的話也要看你使用什麼伺服器,基本上也都很簡單,把war包放到指定位置啟動伺服器即可

㈡ 怎麼用ant來編譯groovy

用生成器進行構建
使 Groovy 中的 Ant 更迷人的核心之處是 生成器。實際上,生成器允許您很方便地在 Groovy 中表示樹形數據結構,例如 XML 文檔。而且,女士們先生們請看,秘密在這:使用生成器,特別是 AntBuilder,您可以毫不費力地構造 Ant 的 XML 構建文件,不必處理 XML 就可以 執行生成的行為。而這並不是在 Groovy 中使用 Ant 的惟一優點。與 XML 不同,Groovy 是非常有表現力的開發環境,在這個環境中,您可以容易地編寫循環結構、條件選擇代碼,甚至可以利用「重用」的威力,而不必像以前那樣,費力地用剪切-粘貼操作來創建新 build.xml 文件。而且您做這些工作時,完全是在 java 平台中!
生成器的優點,尤其是 Groovy 的 AntBuilder,在於它們的語法表示完全體現了它們所代表的 XML 文件的邏輯進程。被附加在 AntBuilder實例上的方法與對應的 Ant 任務匹配;同樣的,這些方法可以接收參數(以 map 的形式),參數對應著任務的屬性。而且,嵌套標簽(例如include 和 fileset)也定義成閉包。
構建塊:示例 1
我要用一個超級簡單的示例向您介紹生成器:一個叫做 echo 的 Ant 任務。在清單 4 中,我創建了一個普通的、每天都會用到的 Ant 的 echo 標記的 XML 版本(用在這不要奇怪):
清單 4. Ant 的 Echo 任務
<echo message="This was set via the message attribute"/>
<echo>Hello World!</echo>

事情在清單 5 中變得更有意思了:我用相同的 Ant 標簽,並在 Groovy 中用 AntBuilder 類型重新定義了它。注意,我可以使用 echo 的屬性message,也可以只傳遞一個期望的 String。

㈢ 用ant將程序編譯和運行,都要做什麼工作

ant是apache項目組的一個子項目,是一個基於java的構建工具。ant本身用java實現,要構建的工程的配置文件用xml格式描述,可以很方便的實現跨平台構建工作。
ant 可以從http://ant.apache.org下載,目前最新版本為1.5.4。下載完畢後直接解壓縮到一個目錄,例如D:\ant。

下一步我們需要設置如下的環境變數:
ANT_HOME:ant的安裝目錄,如果按上面方法解壓縮了ant,那麼這個值應該設為D:\ant
JAVA_HOME:jdk的安裝目錄
PATH:把%ANT_HOME%\bin目錄加到path變數,以便於從命令行直接運行ant。

(1)建立build.xml

用ant編譯規模較大的工程非常方便,每個工程都對應一個build.xml文件,這個文件包含與這個工程有關的路徑信息和構建任務。

下面是一個最簡單的build.xml文件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="projectTemplate" default="init" basedir=".">
<target name="init" >
<property name="lib.dir" value="lib"/>
<echo message="Hello ,lib.dir is set to ${lib.dir}" >
</echo>
</target>
</project>

每個build.xml有且僅有一個project,每個project下面可以包含多個target,每個target表示一個小的任務,每個任務負責執行一段腳本。ant有內置任務集可供使用,例如上面的echo就是在console上顯示消息。

更詳細的內置任務請參考http://ant.apache.org/manual/coretasklist.html

${lib.dir}表示引用一個名字叫做lib.dir的屬性值,這個屬性的值就是lib。

(2)運行ant

使用ant.bat可以直接運行ant,如果不帶任何參數,ant會在當前路徑下搜索build.xml文件,如果找到了這個文件,就運行project的default屬性指定的target.我們也可以帶參數來運行ant,以便選擇build.xml文件和要運行的target:

ant -buildfile c:\demo\build.xml init

表示運行c:\demo\build.xml 中名字為init的target

(3)ant的目標依賴

target有一個屬性depends,在其中可以指定一系列的target名字,表示在執行該target前,必須首先執行的一系列其它target。depends具有傳遞性,例如:targetA depends targetB,而targetB depends targetC和targetD,這樣在執行targetA之前,首先執行C和D,然後執行B,最後才會執行A。

下面是個簡單的例子,在執行編譯的動作前,首先需要建立一個目標代碼存放的目錄,然後再執行編譯。

<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="project" default="init" basedir=".">
<target name="init" >
<property name="dist" value="dist"/>
<mkdir dir="${dist}" />
</target>
<target name="build" depends="init">
<javac srcdir="SourceCode" destdir="${dist}">
</javac>
</target>
</project>

㈣ 如何使用Ant來編譯Java文件以及如何運行

一、源文件情況
源文件位置為:D:\temp,源文件名(含包名字):com.ldq.WeatherDemo.java

前提:已安裝 jdk ,並配置好環境變數。

二、過程
1、編譯:
提示符進入 D:\temp 路徑下,輸入:javac com\ldq\WeatherDemo.java
生成類文件:WeatherDemo.class

2、打包:
提示符進入 D:\temp 路徑下,輸入:jar cvf WeatherDemo.jar com\ldq\WeatherDemo.class
生成檔案文件:WeatherDemo.jar

3、修改 MANIFEST.MF 文件:
由於引用了外部的類,所以要添加引用類的路徑,即修改MANIFEST.MF文件。保存如下內容到 D:\temp下,文件名 MANIFEST.MF

Manifest-Version: 1.0
Sealed: true
Main-Class: com.ldq.WeatherDemo
Class-Path: lib/jaxrpc.jar lib/log4j-1.2.8.jar lib/mail.jar lib/saaj.jar lib/tools.jar lib/wsdl4j-1.5.1.jar lib/activation.jar lib/axis.jar lib/axis-ant.jar lib/commons-discovery-0.2.jar lib/commons-logging-1.0.4.jar

注意在後面空兩行。
提示符進入 D:\temp 路徑下,輸入:jar umf MANIFEST.MF WeatherDemo.jar
執行時會提示更新的內容。

4、添加包含引用類的相應文件:
在 D:\temp 路徑下,新建 lib 文件夾,講對應的 jaxrpc.jar ... 拷入其中,此時,即可雙擊(或在提示符下輸入:java -jar WeatherDemo.jar)運行 WeatherDemo.jar 文件了。

三、總結
雙擊運行 jar 文件時,虛擬機會到 jar 文件中下找 .MF 文件,找到對應的 Main-Class 運行,引入的類在 Class-Path 所指路徑。
事實上可以利用 winrar或winzip 工具打開 jar 文件,直接將修改好的 MANIFEST.MF 拷入覆蓋,class文件也可以做同樣的操作,節省了輸入復雜難記的命令。另外,對於 javaME 生成的 jar 文件,限制嚴格些,MANIFEST.MF 文件中有個文件大小的欄位,可以先保存,查看文件大小,再修改保存。
另一種方法是通過 Eclipse - Export - Runnable JAR file 直接生成 jar 文件,此時,所有的引用類都被打包在 jar 文件里了。

㈤ ant是用來干什麼的

Apache Ant,是一個將軟體編譯、測試、部署等步驟聯系在一起加以自動化的一個工具,大多用於Java環境中的軟體開發。

Ant運行時需要一個XML文件, Ant通過調用target樹,就可以執行各種task。每個task實現了特定介面對象。

由於Ant構建文件 是XML格式的文件,所以很容易維護和書寫,而且結構很清晰。Ant可以集成到開發環境中。由於Ant的跨平台性和操作簡單的特點,它很容易集成到一些開發環 境中去。

(5)在伺服器用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

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

㈦ Eclipse 怎麼實現編譯源文件的,最好能把具體過程講下

編譯都是用jdk的,和eclipse的編譯其實沒有太大關系,
你要理清項目內部的依賴關系,以及項目間的依賴關系,然後根據編譯的順序,來編寫ant任務。
至於編譯 其實都是調用的javac 、jar 之類的java原聲的指令。你要定好classpath

㈧ 用ant編譯java的問題

我編譯都是這么整:
<target name="build" description="Compile main source tree java files">
<mkdir dir="$"/>
<javac destdir="$" source="1.5" target="1.5" debug="true"
deprecation="false" optimize="false" failonerror="true">
<src path="$"/>
<classpath refid="master-classpath"/>
</javac>
</target>
給你一個建議,ant的具體用法是不需要太深入的了解,會讀會用會改會,就能基本應付工作中所有問題了。我以前還是自己寫ant,到後來發現沒什麼必要,現在用的ant就是從hibernate中幫助文檔里找來的,功能很全面,常用的都有了。

<?xml version="1.0"?>

<project name="springmvc" basedir="." default="usage">
<property file="build.properties"/>

<property name="src.dir" value="src"/>
<property name="web.dir" value="war"/>
<property name="build.dir" value="$/WEB-INF/classes"/>
<property name="name" value="springmvc"/>

<path id="master-classpath">
<fileset dir="$/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<!-- We need the servlet API classes: -->
<!-- * for Tomcat 5/6 use servlet-api.jar -->
<!-- * for other app servers - check the docs -->
<fileset dir="$">
<include name="servlet*.jar"/>
</fileset>
<pathelement path="$"/>
</path>

<target name="usage">
<echo message=""/>
<echo message="$ build file"/>
<echo message="-----------------------------------"/>
<echo message=""/>
<echo message="Available targets are:"/>
<echo message=""/>
<echo message="build --> Build the application"/>
<echo message="deploy --> Deploy application as directory"/>
<echo message="deploywar --> Deploy application as a WAR file"/>
<echo message="install --> Install application in Tomcat"/>
<echo message="reload --> Reload application in Tomcat"/>
<echo message="start --> Start Tomcat application"/>
<echo message="stop --> Stop Tomcat application"/>
<echo message="list --> List Tomcat applications"/>
<echo message=""/>
</target>

<target name="build" description="Compile main source tree java files">
<mkdir dir="$"/>
<javac destdir="$" source="1.5" target="1.5" debug="true"
deprecation="false" optimize="false" failonerror="true">
<src path="$"/>
<classpath refid="master-classpath"/>
</javac>
</target>

<target name="deploy" depends="build" description="Deploy application">
< todir="$/$" preservelastmodified="true">
<fileset dir="$">
<include name="**/*.*"/>
</fileset>
</>
</target>

<target name="deploywar" depends="build" description="Deploy application as a WAR file">
<war destfile="$.war"
webxml="$/WEB-INF/web.xml">
<fileset dir="$">
<include name="**/*.*"/>
</fileset>
</war>
< todir="$" preservelastmodified="true">
<fileset dir=".">
<include name="*.war"/>
</fileset>
</>
</target>

<!-- ============================================================== -->
<!-- Tomcat tasks - remove these if you don't have Tomcat installed -->
<!-- ============================================================== -->

<path id="catalina-ant-classpath">
<!-- We need the Catalina jars for Tomcat -->
<!-- * for other app servers - check the docs -->
<fileset dir="$">
<include name="catalina-ant.jar"/>
</fileset>
</path>

<taskdef name="install" classname="org.apache.catalina.ant.InstallTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="start" classname="org.apache.catalina.ant.StartTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>

<target name="install" description="Install application in Tomcat">
<install url="$"
username="$"
password="$"
path="/$"
war="$"/>
</target>

<target name="reload" description="Reload application in Tomcat">
<reload url="$"
username="$"
password="$"
path="/$"/>
</target>

<target name="start" description="Start Tomcat application">
<start url="$"
username="$"
password="$"
path="/$"/>
</target>

<target name="stop" description="Stop Tomcat application">
<stop url="$"
username="$"
password="$"
path="/$"/>
</target>

<target name="list" description="List Tomcat applications">
<list url="$"
username="$"
password="$"/>
</target>

<!-- End Tomcat tasks -->

<property name="test.dir" value="test"/>

<target name="buildtests" description="Compile test tree java files">
<mkdir dir="$"/>
<javac destdir="$" source="1.5" target="1.5" debug="true"
deprecation="false" optimize="false" failonerror="true">
<src path="$"/>
<classpath refid="master-classpath"/>
</javac>
</target>

<target name="tests" depends="build, buildtests" description="Run tests">
<junit printsummary="on"
fork="false"
haltonfailure="false"
failureproperty="tests.failed"
showoutput="true">
<classpath refid="master-classpath"/>
<formatter type="brief" usefile="false"/>

<batchtest>
<fileset dir="$">
<include name="**/*Tests.*"/>
</fileset>
</batchtest>

</junit>

<fail if="tests.failed">
tests.failed=$
***********************************************************
***********************************************************
**** One or more tests failed! Check the output ... ****
***********************************************************
***********************************************************
</fail>
</target>
<!-- clean -->
<target name="clean" description="Clean output directories">
<delete>
<fileset dir="$">
<include name="**/*.class"/>
</fileset>
</delete>
</target>

<target name="undeploy" description="Un-Deploy application">
<delete>
<fileset dir="$/$">
<include name="**/*.*"/>
</fileset>
</delete>
</target>
</project>

㈨ 如何使用ANT在命令行進行編譯和測試

一、環境變數
在網上找到ANT的壓縮包,解壓縮以後放到C盤根目錄如下圖

對,就是這個鬼樣子,放在這里就可以用了,不用安裝之類的
環境變數如下圖:

你要定義ANT_HOME,然後讓系統path找到這個ANT_HOME就行了

二、寫build.xml

你的目錄結構如下圖:

源文件 放在src
引用的jar包放在lib
編譯結果安排在classes

接下來就是build.xml了
如下,自己看吧

[html] view plain
<?xml version="1.0"?>
<project name="pojo_0428" default="prepare" basedir=".">

<property name="source.root" value="src"/>
<property name="class.root" value="classes"/>
<property name="lib.dir" value="lib"/>

<!-- class path for compilation and execution -->
<path id="basepath">
<!-- 運行時 class文件的位置 -->
<pathelement location="${class.root}" />
<!-- jar包 -->
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</path>

<!--默認的target -->
<target name="prepare">
<delete dir="${class.root}"/>
<mkdir dir="${class.root}"/>
</target>

<!--編譯 -->
<target name="compile" depends="prepare">
<javac srcdir="${source.root}"
destdir="${class.root}"
debug="on"
optimize="off"
deprecation="on">
<classpath refid="basepath"/>
</javac>
</target>
<!--執行。 案常式序的入口 依賴 compile -->
<target name="run" depends="compile">
<java classname="com.javathink.Student" fork="true">
<classpath refid="basepath"/>
</java>
</target>

</project>

㈩ 如何解決:ant編譯

1、eclipse背後做了很多工作,包括庫的引用等 2、如果用ant命令的話,就需要設置很多東西,比如環境變數,庫路徑的設置等 3、先編譯一個jar包,用jar包引用,把工程引用改為jar文件引用,再編譯試試。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:645
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:936
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:632
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:821
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:731
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1066
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:299
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:160
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:850
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:763