欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
在 Eclipse 下利用 gradle 構建系統

構建系統時(shí)候常常要用到 Ant, Maven 等工具,對于初學(xué)者來(lái)說(shuō),它們還是過(guò)于復雜,上手還是需要時(shí)間的。本文將向讀者介紹一種全新的構建項目的方式 gradle,它簡(jiǎn)單、上手快,能大大節省項目的時(shí)間和成本。

蘇 春波, 高級軟件工程師, HP

2010 年 8 月 13 日

在 eclipse 下利用 gradle 構建系統

基本開(kāi)發(fā)環(huán)境

  • 操作系統:本教程使用的為 Windows Vista Enterprise, 如果您的系統是 Linux 的,請選擇下載對應版本的其他工具,包括開(kāi)發(fā)工具、Java EE 服務(wù)器、Apache Ant、SoapUI。
  • 開(kāi)發(fā)工具:Eclipse IDE for SOA Developers 版本,請到 http://www.eclipse.org/downloads/ 網(wǎng)站下載,當然任何版本的 eclipse 都是可以的。
  • Java EE 服務(wù)器:Apache-Tomcat-6.0.18,可以到 http://tomcat.apache.org/download-60.cgi 下載,使用 5.0 以上的任何版本都可以的,當然,您也可以使用 Jboss 等其他 Java EE 服務(wù)器。
  • Jdk:到 http://java.sun.com 下載 1.5.0_17 版本,下載后安裝即可。

Ant,Maven,Gradle 簡(jiǎn)單比較

Ant 是我們過(guò)去構建系統基本都會(huì )用到的,xml 腳本文件中包括若干 task 任務(wù),任務(wù)之間可以互相依賴(lài),對于一個(gè)大的項目來(lái)說(shuō),這些 xml 文件維護起來(lái)的確不是一件容易的事情,還有那些項目依賴(lài)的而沒(méi)有版本號的 jar 包,有時(shí)真的讓人頭疼,后來(lái) Maven 出現了,基于中央倉庫的編譯相對于 Ant 來(lái)說(shuō)的確是好了很多,但是,是不是 Ant,Maven 就是我們構建項目的唯一選擇呢?呵呵,當然不了,利用 Gradle 來(lái)構建系統我認為將成為 java 構建項目的最佳選擇,簡(jiǎn)單,快速,對初學(xué)者無(wú)苛刻要求,可以說(shuō)是拿來(lái)就會(huì )用,而且我們再也不用看那些冗長(cháng)而復雜的 xml 文件了,因為 Gradle 是基于 Groovy 語(yǔ)言的,Groovy 大家應該很熟悉吧,是基于 Java Virtual Machine 的敏捷開(kāi)發(fā)語(yǔ)言,它結合了 Python、Ruby 和 Smalltalk 的許多強大的特性,如果你是一個(gè) Ant 的完全支持者,也沒(méi)有問(wèn)題,因為 Gradle 可以很平滑的來(lái)調用 Ant 文件的,我這樣說(shuō)你可能不接受 Gradle,下面我們就會(huì )通過(guò)一個(gè)個(gè)具體實(shí)例來(lái)講解 Ant,Maven,Gradle 構建項目的過(guò)程,通過(guò)例子我們能很容易明白它們的差異。Let ’ s go。

用 Ant 來(lái)構建簡(jiǎn)單系統

新建一個(gè) Java project, 命名為 ant_project

圖 1. 新建 ant_project 項目

然后新建一個(gè) HelloWorld 類(lèi),我們下面就是將這個(gè)項目通過(guò) Ant 來(lái)編譯,打包,類(lèi)的代碼列表如清單 1 所示:

清單 1. HelloWorld 類(lèi)
 package org.ant.test;  public class HelloWorld { 	 public String sayHello(String name){ 		 return "Hello "+name; 	 }  }

然后再新建一個(gè) build 文件,命名為 build.xml, 內容如清單 3 所示:

清單 2. build.xml
 <?xml version="1.0" encoding="UTF-8"?>  <project name="project" default="default">     <target name="default" depends="depends" description="description">         <javac srcdir="src" destdir="bin" includes="org/**"></javac>     	 <jar basedir="bin" destfile="dist/ant_project.jar"></jar>     	 <war destfile="dist/ant_project.war" webxml="WEB-INF/web.xml">     		 <classes dir="bin"></classes>     	 </war>     </target>     <!-- - - - - - - - - - - - - - - - - -           target: depends                               - - - - - - - - - - - - - - - - - -->     <target name="depends">     </target>  </project>

熟悉 ant 的同學(xué)們對于上面的腳本應該很容易看明白,這里就不詳細解釋了,主要功能就是把這個(gè)工程編譯然后打成 jar 和 war 包。到目前為止 ant_project 的目錄結構如圖 2 所示:

圖 2. ant_project 工程目錄結構

運行 ant 腳本。

 E:\gdcc\tools\apache-ant-1.6.5\bin\ant -f  E:\ws_IBM\ant_project\build.xml  注:ant 放在了 E:\gdcc\tools\apache-ant-1.6.5 目錄下。執行結果如下: Buildfile: E:\ws_IBM\ant_project\build.xml  depends:  default:     [javac] Compiling 1 source file to E:\ws_IBM\ant_project\bin       [jar] Building jar: E:\ws_IBM\ant_project\dist\ant_project.jar       [war] Building war: E:\ws_IBM\ant_project\dist\ant_project.war  BUILD SUCCESSFUL  Total time: 859 milliseconds

這是個(gè)非常簡(jiǎn)單的工程,我們將他打成了 jar,war 包,所需要的 build 文件大約在 10 行左右,下面我們再看看用 Gradle 的情況。

用 Gradle 來(lái)構建簡(jiǎn)單系統

準備環(huán)境:

  1. 下載 gradle-0.9-preview-1 從 http://dist.codehaus.org/gradle/?ref=darwinports.com網(wǎng)站上選擇一個(gè)版本,然后解壓到指定目錄,將 Gradle 的 bin 目錄添加到 Path 變量中。
  2. 使用 cmd 命令,然后敲入 gradle – version,如出現以下信息,表示環(huán)境配置成功。
 C:\Documents and Settings\suchu>gradle -version  Gradle 0.9-preview-1  Gradle buildtime: Monday, March 29, 2010 4:51:14 PM CEST  Groovy: 1.7.1  Ant: Apache Ant version 1.8.0 compiled on February 1 2010  Ivy: 2.1.0  Java: 1.6.0_12  JVM: 11.2-b01  JVM Vendor: Sun Microsystems Inc.

注:以上信息根據不同版本的 Gradle 或者不同的環(huán)境也許不同,但都是正確的。

Gradle 常用的使用方法介紹

新建一個(gè) Java project, 命名為 gradle_project

圖 3. 新建 gradle_project 項目

然后新建一個(gè) java bean 名為 HelloWorld 內容和上面的一樣,可以參考 ant_project。為了實(shí)現編譯,打包功能,我們需要新建一個(gè)名為 build.gradle 的文件。文件內容見(jiàn)清單 3 所示:

清單 3. build.gradle 內容
 apply plugin: 'java'

是不是很驚訝,的確,真的就只要這么短短的一行,而它的功能卻是相當的強大的,能編譯,打成 jar 包,運行測試腳本等。到目前為止,項目的結構如圖 4 所示:

圖 4. gradle_project 項目結構圖

這里需要注意一點(diǎn)的是,項目包的結構最好是按照 Gradle 期望的來(lái)建立,當然也可以通過(guò)配置來(lái)改變。下面我們來(lái)運行下 build.gradle 文件。運行 cmd 命令,進(jìn)入 gradle_project 項目路徑下,然后運行 gradle build 命令,命令顯示信息如清單 5 所示。

清單 5. build.gradle 運行顯示信息
 E:\ws_IBM\gradle_project>gradle build  :compileJava  :processResources  :classes  :jar  :assemble  :compileTestJava  :processTestResources  :testClasses  :test  :check  :build  BUILD SUCCESSFUL  Total time: 5.125 secs

我們再看下生成物,這個(gè)命令首先在 gradle_project 下新建了 build 目錄,build 目錄包含 classes, dependency-cache, libs,tmp 四個(gè)目錄,libs 下包含 jar 包,jar 包包含 main 下的所有 java 文件和和資源文件。一個(gè)簡(jiǎn)單的例子到這里就演示完了,怎么樣是不是腳本很簡(jiǎn)潔,用起來(lái)很簡(jiǎn)單,產(chǎn)生想繼續學(xué)習的興趣了吧,別急,下面我們會(huì )繼續來(lái)探究 Gradle 的神奇之處。

下面我們來(lái)介紹幾個(gè)常用的命令,clean,這個(gè)命令是將剛才產(chǎn)生的 build 目錄刪除掉; Assemble,這個(gè)命令是編譯 java 文件但是不運行檢查代碼質(zhì)量等的命令,運行時(shí)顯示的信息如清單 6 所示:

清單 6. assemble 命令顯示的信息
 E:\ws_IBM\gradle_project>gradle assemble  :compileJava  :processResources UP-TO-DATE  :classes  :jar  :assemble  BUILD SUCCESSFUL

和清單 5 比較下,他們的區別應該很容易看出來(lái),那么我們怎么樣來(lái)運行檢查代碼質(zhì)量的命令而不需要打成 jar 包之類(lèi)的額外工作呢,check 命令正好滿(mǎn)足你的要求,此命令就是編譯 java 文件并運行那些類(lèi)似 Checkstyle,PMD 等外部插件命令來(lái)檢查我們自己的源代碼。Check 命令運行顯示的信息如清單 7 所示:

清單 7. check 命令運行時(shí)信息
 E:\ws_IBM\gradle_project>gradle check  :compileJava UP-TO-DATE  :processResources UP-TO-DATE  :classes UP-TO-DATE  :compileTestJava UP-TO-DATE  :processTestResources UP-TO-DATE  :testClasses UP-TO-DATE  :test UP-TO-DATE  :check UP-TO-DATE  BUILD SUCCESSFUL

這里需要說(shuō)明一點(diǎn)的是 Gradle 是增量式編譯的,只編譯那些有變動(dòng)的 java 類(lèi)或資源文件的,如 UP-TO-DATE 表示是有更新的?,F在 javadoc 越來(lái)越受到人們的重視,尤其對于那些復雜的需要接口調用的的項目,javadoc 的地位就更加突出了,如果我們使用 Ant 需要在 build 文件中增加清單 8 的片段。

清單 8. 利用 Ant 生成 javadoc
	 <target name="javadoc">        <!-- destdir 是 javadoc 生成的目錄位置 -->       <javadoc destdir="${distDir}" encoding="UTF-8" docencoding="UTF-8">           <!-- dir 是你的源代碼位置,記住是 java 文件的位置而不是 class 文件的位置,                       第一次用這個(gè)命令容易忽略這點(diǎn) 切記 -->                 <packageset dir="${srcDir}">            <!-- exclude 是去掉那些不想生成 javadoc 的類(lèi)文件 -->                              <exclude name="${excludeClasses}" />                                    </packageset>                            </javadoc>         </target>

然后我們用 ant javadoc 命令來(lái)運行,即可生成 javadoc。那么我們利用 Gradle 是怎樣來(lái)生成 javadoc 的呢,都需要做那些額外的工作呢? build.gradle 文件是否需要修改呢?我們的回答是,不用,什么都不用修改,什么都不用做,只需利用 gradle javadoc 命令,即可生成我們期望的 javadoc。通常我們新建一個(gè)項目,.classpath 文件的內容如清單 9 所示:

清單 9. .classpath 文件內容
 <?xml version="1.0" encoding="UTF-8"?>  <classpath> 	 <classpathentry kind="src" path="src"/> 	 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER	    /org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_12"/> 	 <classpathentry kind="output" path="bin"/>  </classpath>

通過(guò)上面的知識我們知道,Gradle 期望的目錄結構和自動(dòng)生成的是有些差別的,比如源碼路徑,編譯后的文件放置目錄等,那么我們能不能通過(guò) Gradle 命令來(lái)統一一下呢,使原項目結構與 Gradle 期望的一致,以免開(kāi)發(fā)者將代碼放置到了錯誤的目錄結構下,那樣 Gradle 是不管理它們的。下面我們就通過(guò)一個(gè)簡(jiǎn)單的方法來(lái)實(shí)現上面的需求,首先我們來(lái)簡(jiǎn)單修改下 build.gradle 文件,添加 apply plugin: 'eclipse'這么一行,然后我們使用命令 gradle eclipse 即可。.classpath 文件的變化如清單 9 所示。

清單 9. 修改后的 .classpath 文件內容
 <?xml version="1.0" encoding="UTF-8"?>  <classpath>   <classpathentry kind="src" path="src/main/java"/>   <classpathentry kind="output" path="build/classes/main"/>   <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>  </classpath>

War 包是我們經(jīng)常要用到的,上面我們利用 Ant 腳本生成過(guò) war 包,那么 Gradle 又是怎樣來(lái)生成 war 包的呢?經(jīng)過(guò)上面的學(xué)習或許你已經(jīng)猜出來(lái)了,需要增加一個(gè) plugin,完全正確,只需要將 apply plugin: 'war' 這一行加入到 build.gradle 文件中,然后運行 gradle War 命令即可,簡(jiǎn)單的簡(jiǎn)直要命,是不是,呵呵!

如何在老項目上使用 Gradle

我們上面講過(guò),Gradle 對其所能控制的目錄結構是有一定的要求的,那么如果我們的項目已經(jīng)開(kāi)始很長(cháng)時(shí)間了,現在的項目結構不滿(mǎn)足 Gradle 的要求,那么我們還能不能利用 Gradle 呢?答案當然是肯定的,下面我們就介紹怎樣在老項目上使用 Gradle,方法很簡(jiǎn)單,當然如果過(guò)于復雜我們也沒(méi)必要再這里介紹它了,直接使用 Ant 就好了。首先我們需要在 build.gradle 文件中增加如清單 10 所示的內容。

清單 10. 匹配老項目的結構
 sourceSets { 	 main { 		 java.srcDir "$projectDir/src"	 }  }

然后我們就可以使用 Gradle 提供的所有命令和方法了。

如何加入項目所依賴(lài)的 jar 包

大家都知道,一個(gè)項目在編譯過(guò)程中要依賴(lài)很多 jar 包的,在 Ant 中我們通過(guò)添加 classpath 來(lái)實(shí)現的,如清單 11 所示。

清單 11. ant 中添加依賴(lài)的 jar 包
 <path id="j2ee"> 		 <pathelement location="${servlet.jar}" /> 		 <pathelement location="${jsp-api.jar}" /> 		 <pathelement location="${ejb.jar}" /> 		 <pathelement location="${jms.jar}" />  </path>  <javac destdir="${build.classes}" srcdir="${src.dir}" debug="${javac.debug}"                  deprecation="${javac.deprecation}"> 			 <include name=" "/> 			 <classpath refid="j2ee"/> 		 </javac>

那么 Gradle 又是怎樣來(lái)做的呢?通過(guò)上面的知識的學(xué)習,你是否有一個(gè)大概的思路呢?假如我們現在有一個(gè) java 類(lèi)叫 HelloWorldTest,這個(gè)類(lèi)中引用了 junit 這個(gè) jar 包中的類(lèi),這時(shí)候我們用 Gradle 要怎樣來(lái)編譯這個(gè)類(lèi)呢?首先我們新建一個(gè)目錄叫 libs,這個(gè)目錄就是放置項目所依賴(lài)的所有 jar 包,當然包括 HelloWorldTest 類(lèi)所依賴(lài)的 junit-4.4.jar 包,然后我們要修改下 build.gradle 文件,增加內容見(jiàn)清單 12。

清單 12. 工程所依賴(lài) jar 包添加方法
repositories { 	 flatDir(dirs: "$projectDir/libs")  }  dependencies { 	 compile ':junit:4.4' }

注:repositories 相當一個(gè)存儲 jar 包的倉庫,我們可以指定本地的依賴(lài) jar 包,也可以利用 Maven 所指定的倉庫,如 mavenCentral(); 通過(guò) dependencies 來(lái)包含所有真正要依賴(lài)的 jar 包,格式為 goup:name:version,':junit:4.4:' 就是表示 dirs 路徑下的 junit-4.4.jar 這個(gè)包。

如何實(shí)現 copy 工作

Copy 是我們經(jīng)常要用到的一個(gè)命令,java 類(lèi)的 copy,資源文件的 copy 等等。如果是 Ant 我們會(huì )在 build.xml 文件中加入清單 13 中的內容。

清單 13. Ant 中的 copy 任務(wù)
復制單個(gè)文件到另一個(gè)文件  <copy file="myfile.txt" tofile="mycopy.txt"/> 復制單個(gè)文件到一個(gè)目錄  <copy file="myfile.txt" todir="../some/other/dir"/> 復制一個(gè)目錄到另一個(gè)目錄  <copy todir="../new/dir">     <fileset dir="src_dir"/>   </copy> 復制一部分文件到一個(gè)目錄下  <copy todir="../dest/dir">     <fileset dir="src_dir">       <exclude name="**/*.java"/>     </fileset>   </copy>   <copy todir="../dest/dir">     <fileset dir="src_dir" excludes="**/*.java"/>   </copy>

我們知道 copy 任務(wù)中有很多屬性,這里我們就不一一列出了,我們還是主要看下 Gradle 是如何來(lái)實(shí)現這些功能的。

使用 Gradle 實(shí)現目錄之間 copy 文件任務(wù)

我們只需要在 build.gradle 文件中加入清單 14 中的內容。

清單 14. gradle 中實(shí)現目錄間復制文件
 task copyOne(type: Copy) { 	 from 'src/main/test'	 into 'build/anotherDirectory' }

注:把 test 目錄下的所有文件復制到 anotherDirectory 目錄下。然后我們利用命令 E:\ws_IBM\gradle_project>gradle copyOne 來(lái)執行即可。

對 copy 文件的過(guò)濾

有時(shí)候一個(gè)目錄下的文件數目很多,而我們只想復制某一部分文件,比如只復制 java 文件或資源文件等,這時(shí)候我們就要用到 copy 任務(wù)的 include 屬性,這一點(diǎn)和 Ant 是一樣的。比如只復制 java 文件到某一指定目錄,實(shí)現這個(gè)需求我們要在 build.gradle 文件中增加清單 15 的內容。

清單 15. copy java 文件到指定目錄
 task copyTwo(type: Copy) { 	 from 'src/main/test'	 into 'build/anotherDirectory'	 include '**/*.java' }

如果我們只想排除一些文件,不想把這一類(lèi)文件 copy 過(guò)去,這時(shí)候我們要用到 exclude 屬性,比如我們不想把 java 文件復制到指定目錄中,那么我們只需要將上面清單 15 中的 include 替換成 exclude 即可。

發(fā)布 jar 文件

做項目時(shí)經(jīng)常會(huì )遇到一個(gè) project 中的類(lèi)依賴(lài)另一個(gè) project 中類(lèi)的情況,如果用 Ant,我們會(huì )這樣做,首先將被依賴(lài)的類(lèi)文件打成 jar 包,然后利用 copy 命令將這個(gè) jar 包復制到指定目錄下,我們可以想象到要向 build.xml 添加好多行代碼,這里我們就不一一列出了,不會(huì )的同學(xué)們可以參考上面的知識。下面我們看下 Gradle 是怎樣來(lái)完成這一需求的,Gradle 不但可以講 jar 包發(fā)布到本地的指定目錄中,而且還可以發(fā)布到遠程目錄中,我們看下清單 16 的內容。

清單 16. 發(fā)布 jar 包到本地目錄
 publishJarFile { 	 repositories { 		 flatDir(dirs: file('jarsDerectory')) 	 }  }

然后我們利用 gradle publishJarFile 命令即可。注:清單 16 是將工程下的 java 類(lèi)文件全部打成 jar 包,然后放到工程目錄下的 jarsDerectory 子目錄中。

Maven 對于 jar 包的倉庫管理方法給我們提供了很多方便,Gradle 完全可以利用 Maven 的這一優(yōu)點(diǎn)的,我們在上面已經(jīng)講過(guò)了如何來(lái)使用,那么我們又是怎么來(lái)做到將項目所需要的 jar 包更新到倉庫中呢?具體解決方法見(jiàn)清單 17。

清單 17. 發(fā)布 jar 文件到 Maven 的倉庫中
 apply plugin: 'maven' publishToMaven {  repositories.mavenDeployer {  repository(url: "file://localhost/tmp/myRepo/")  }  }

Gradle 在多個(gè)工程中的應用

做項目時(shí)候,經(jīng)常會(huì )碰到多個(gè)工程的情況,最通常的情況我們也分為服務(wù)器端和客戶(hù)端兩部分,這種情況我們過(guò)去用 Ant 時(shí)候會(huì )在每個(gè)工程下面都建立個(gè) build.xml 文件或者建立一個(gè) build.xml 文件,然后在這個(gè) build.xml 文件中建立不同工程的 target,將將被引用的工程打成 jar 包來(lái)供其他工程引用,那么 Gradle 是怎樣來(lái)完成這樣的需求的呢?下面我們舉個(gè)具體的例子來(lái)詳細演示下。首先我們新建一個(gè)主工程命名為 gradle_multiProject, 然后在主工程下在新建一個(gè)子工程命名為 sub_projectOne, 在兩個(gè)工程下面都有一個(gè)各自獨立的 src 并且符合 Gradle 要求的目錄結構,在每個(gè)工程下面都建個(gè)類(lèi)命名為 HelloWorld,類(lèi)內容同清單 1. 然后我們新建個(gè) settings.gradle 文件,內容見(jiàn)清單 18。

清單 18. settings.gradle 文件內容
 include "sub_projectone"

然后在新建一個(gè)我們熟悉的 build.gradle 文件,文件內容見(jiàn)清單 19。

清單 19. 主工程目錄下 build.gradle 文件內容
 Closure printProjectName = { task -> println "I'm $task.project.name" }  task hello << printProjectName  project(':sub_projectone') { 	 task hello << printProjectName  }

然后我們使用命令 gradle – q hello 運行一下,運行結果如清單 20 所示。

清單 20. 命令運行結果
 E:\ws_IBM\gradle_multiProject>gradle -q hello  I'm gradle_multiProject  I'm sub_projectone

我們會(huì )發(fā)現,這個(gè)命令將主工程和子工程的名字都打印出來(lái)了,為什么會(huì )這樣呢?我想你一定猜對了,因為我們在 build.gradle 文件中使用了 project() 方法,方法內傳入的是子工程的名稱(chēng),如果我們子工程不止一個(gè),那么我們又該怎樣來(lái)調用呢?這時(shí)候我們只需要調用另一個(gè)方法 allprojects 即可,注意 allprojects 方法是不需要傳入參數的,它返回的是當前工程和當前工程下面的所有子工程的列表。上面演示的內容其實(shí)我們不經(jīng)常用到的,這里簡(jiǎn)單的介紹下就是為了說(shuō)明 gradle 給我們提供了好多方法來(lái)供我們調用,在多工程的環(huán)境下我們可以靈活的使用它們來(lái)達到我們的要求,下面我們就步入正題來(lái)看看在多工程情況下,gradle 是如何來(lái)編譯,打包各自工程的。這里我們添加些內容到 build.gradle 文件,內容見(jiàn)清單 21。

清單 21. 添加到 build.gradle 文件中的內容
 subprojects{  apply plugin: 'java' }

然后我們用命令 gradle build,發(fā)現主工程下面的所有子工程都新增了一個(gè) build 文件夾,這個(gè)文件夾下包含編譯生成的 class 文件和 jar 文件,而主工程的 src 下的代碼卻沒(méi)有被編譯,打包。那么我們怎樣做能讓主工程和子工程同時(shí)被編譯,打包呢?方法很簡(jiǎn)單,我們只需要在 build.gradle 文件中增加 apply plugin: 'java' 這么一行代碼,現在完整的 build.gradle 內容見(jiàn)清單 22。

清單 22. 完整的 build.gradle 文件內容
 apply plugin: 'java' subprojects{  apply plugin: 'java' }

是不是很難想象,就這么幾行代碼就完成了將所有工程中的代碼都編譯了并且都打成了 jar 文件。有的朋友會(huì )問(wèn)了,如果子工程與主工程他們打成的包不一樣,有的是需要 jar 包,有的需要打成 war 包等等,這樣的需求我們該怎樣做呢,很簡(jiǎn)單我們只需要在需要打成 war 包的工程下面新建立個(gè) build.gradle 文件,該文件內容為 apply plugin: 'war',然后我們我們在主工程目錄下使用 gradle build 命令即可生成我們需要的 war 包了,Gradle 就是使用這種方法來(lái)滿(mǎn)足那種差異性的需求的。

使用 Ant 的朋友們一定會(huì )深有感觸的吧!也許有些朋友會(huì )有反面的一些聲音,尤其對那些 Ant 的熱愛(ài)者們,一定會(huì )說(shuō),Ant 如果你使用的好,封裝的好一樣可以很簡(jiǎn)潔并且也能達到這個(gè)效果的,的確是這樣的,Gradle 只不過(guò)是把我們經(jīng)常要使用的一些功能項給封裝成了方法,然后我們調用這些方法即可了,再說(shuō)了,Gradle 調用 Ant 腳本也是可以的,如果你一定要用 Ant, 那么你用 Gradle 來(lái)組織一下邏輯也是不錯的選擇。下面我們簡(jiǎn)單看下在 Gradle 中式怎樣來(lái)調用 Ant 腳本的。

Gradle 中調用 Ant 腳本

首先我們建立 Ant 文件 build.xml, 文件詳細內容見(jiàn)清單 23.

清單 23. build.xml 文件內容
 <project>     <target name="hello">         <echo>Hello, from Ant</echo>     </target>  </project>

然后我們在建立個(gè) build.gradle 文件,文件詳細內容見(jiàn)清單 24。

清單 24. build.gradle 文件內容
 ant.importBuild 'build.xml'

簡(jiǎn)單吧,一句話(huà)的事情而已,呵呵。然后我們使用 gradle hello 命令來(lái)看下結果,結果見(jiàn)清單 25。

清單 25. Gradle 調用 Ant 文件的運行結果
 E:\gdcc\me\gradle-0.9-preview-1\samples\userguide\ant\hello>gradle hello  :hello  [ant:echo] Hello, from Ant  BUILD SUCCESSFUL  Total time: 9.734 secs

可以看出,的確調用的是 Ant 的 build.xml 文件吧。

總結

本教程通具體實(shí)例來(lái)講解如何使用 Gradle 來(lái)構建工程的,并在具體實(shí)例中引入我們熟悉的 Ant 來(lái)對比完成,這樣能使 Ant 的愛(ài)好者們能更快的上手,并能一目了然的看到兩者的優(yōu)缺點(diǎn),最后并講解了怎樣和 Ant 來(lái)集成,每一個(gè)實(shí)例都是通過(guò)從新建工程開(kāi)始一步一步的帶領(lǐng)大家來(lái)繼續的,我們知道僅僅通過(guò)一片文章來(lái)很詳細的將 Gradle 的方方面面都闡述的很清楚,那是不可能的,本教程提供了最基本,最基礎的開(kāi)發(fā)過(guò)程,任何復雜的事務(wù)歸根結底還是源于基礎,我一向倡導,“授之以魚(yú),不如授之以漁”,我想只要方向對了,知道如何下手了,就不會(huì )有大的失誤。最后祝大家工作順利。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Android Studio導入項目的幾種方法
spring源碼
Elasticsearch集成HanLP分詞器
Glassfish Install
轉載《怎樣創(chuàng )建ear,war文件》 :: zdon技術(shù)筆記
FindBugs,第 1 部分: 提高代碼質(zhì)量
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久