標籤:div runtime span val 將不 settings image resource spi
1.構建基本的Java項目
為了使用 Java 外掛程式,添加下面代碼到構建檔案:
build.gradle apply plugin: ‘java‘
這個就是 定義一個 Java 項目的全部。它會將 Java 外掛程式應用到項目中,並且添加很多 task。
Gradle 會在 src/main/java 目錄下尋找產品代碼,在 src/test/java 尋找測試代碼 。 另外在 src/main/resources 包含了資源的 JAR 檔案, src/test/resources 包含了運行測試。所有的輸出都在 build 目錄下,JAR 在 build/libs 目錄下。
PS:一些常用的task
clean
刪除 build 目錄,移除所有構建的檔案
assemble
編譯打包代碼,但不運行單元測試。其他外掛程式帶給這個 task 更多特性,比如如果你使用 War 外掛程式,task 將給 project 構建 WAR 檔案
check
編譯測試你的代碼。其他外掛程式帶給這個 task 提供更多檢查類型。比如,你使用 checkstyle 外掛程式, 這個 task 建輝在你的代碼中 執行 Checkstyle
2.依賴外部jar檔案
Java 項目經常會有一些外部 JAR 的依賴。為了引用這些 JAR 檔案,需要在 Gradle 裡面配置。在 Gradle,類似與 JAR 檔案將會放在 repository 中。一個 repository 可以被依賴的項目擷取到,或者提交項目的拷貝到 repository 中,或者兩者都可。比如,我們使用 Maven repository :
build.gradle repositories { mavenCentral() }
我們添加一些依賴,聲明了 編譯時間 需要的依賴和測試時需要的依賴
build.gradle dependencies { compile group: ‘commons-collections‘, name: ‘commons-collections‘, version: ‘3.2‘ testCompile group: ‘junit‘, name: ‘junit‘, version: ‘4.+‘ }
3.自訂項目屬性
在 Java 外掛程式添加屬性到您的項目。這些屬性通常足在啟動時使用預設值。如果他們不適合你,你很容易改他們。讓我們看一看我們的樣本。在這裡,我們將說明我們的 Java 項目的版本號碼,包括 Java 的版本號碼。我們也添加一些屬性的 JAR 檔案清單。
build.gradle sourceCompatibility = 1.5 version = ‘1.0‘ jar { manifest { attributes ‘Implementation-Title‘: ‘Gradle Quickstart‘, ‘Implementation-Version‘: version } }
4.發布jar檔案
需要告訴 Gradle 要發布 JAR 的位置。在 Gradle 中, 產物 比如 JAR 檔案等是發布到庫中的。我們的例子中是發布到了本地路徑。你也發行就緒到 遠程位置或者多個位置。
build.gradle uploadArchives { repositories { flatDir { dirs ‘repos‘ } } }
執行 gradle uploadArchives 來發布
5.建立eclipse項目
建立 Eclipse 特點的描述檔案,比如 .project,需要添加外掛程式
build.gradle apply plugin: ‘eclipse‘
執行 gradle eclipse 來生產 Eclipse project 檔案。
總結
下面是完整的樣本 build 檔案
build.gradle apply plugin: ‘java‘ apply plugin: ‘eclipse‘ sourceCompatibility = 1.5 version = ‘1.0‘ jar { manifest { attributes ‘Implementation-Title‘: ‘Gradle Quickstart‘, ‘Implementation-Version‘: version } } repositories { mavenCentral() } dependencies { compile group: ‘commons-collections‘, name: ‘commons-collections‘, version: ‘3.2‘ testCompile group: ‘junit‘, name: ‘junit‘, version: ‘4.+‘ } test { systemProperties ‘property‘: ‘value‘ } uploadArchives { repositories { flatDir { dirs ‘repos‘ } } }6.構建多個java項目
下面是一個 多 project 構建的 項目結構:
multiproject/ api/ services/webservice/ shared/ services/shared/
裡麵包含 4 個 project。 api 是產生出 JAR 檔案 給用戶端載入提供給 Java 用戶端需要的 XML webservice。webservice 是一個 web 應用返回 XML 。shared 包含了 api、webservice 使用的代碼。項目 services/shared 包含了 依賴 shared 的代碼。
定義 build 檔案
設定檔的名字叫 settings.gradle,如下
settings.gradle include "shared", "api", "services:webservice", "services:shared"
常見配置
有很多常見的配置。我們的樣本中使用了 configuration injection (配置注入)。在這裡,根項目就像一個容器,subprojects 方法遍曆容器中的元素(執行個體中的 project ),並將指定的配置。這樣我們可以很容易地定義所有檔案的 manifest 的內容,和一些常見的依賴關係:
build.gradle subprojects { apply plugin: ‘java‘ apply plugin: ‘eclipse-wtp‘ repositories { mavenCentral() } dependencies { testCompile ‘junit:junit:4.11‘ } version = ‘1.0‘ jar { manifest.attributes provider: ‘gradle‘ } }
注意,樣本中 在 所有 子 project 中應用了 Java 外掛程式。意思是 task 和配置屬性將會出現在雖偶有 子 project 中。所以,你可以 在根 project 目錄中,運行 gradle build 來編譯、測試、將所有 project 打包成 JAR 。
注意,外掛程式只應用在 subprojects 包含的地區,其他根層級的將不適用。
7.依賴外部項目
在相同的構建裡,您可以添加項目之間的依存關係,這樣,例如,一個項目的 JAR 檔案可以用來編譯另外一個項目。在api 構建檔案中我們將添加對shared項目的依賴。由於這種依賴,Gradle 將確保 shared在api 之前獲得構建。
api/build.gradle dependencies { compile project(‘:shared‘) }
8.建立發布包
添加發布包,提供給用戶端裝載
api/build.gradle task dist(type: Zip) { dependsOn spiJar from ‘src/dist‘ into(‘libs‘) { from spiJar.archivePath from configurations.runtime } } artifacts { archives dist }
Gradle使用者指南(3)-構建Java項目