[英]Gradle flat project with multiple Jars in one project
新手Gradle query.Consider跟隨項目的結構
Project
|
-component_1
|
-component_2
我想從每個組件源生成一個jar,它位於src目錄下。 請注意,這不是一個多項目場景,而是一種多組件。 我怎么能在Gradle(1.6)中做到這一點
更新:
需要單個構建文件,而不是每個組件具有單獨的構建
你提到一些組件相互依賴,所以我也想知道為什么你不想將它作為一個多項目構建來實現。 現在,讓我們假設您的所有組件都是獨立的Gradle項目。 鑒於它們生成了一個JAR文件,似乎它們是Java項目。 我將為每個項目創建一個build.gradle
文件。
.
└── your-project
└── component1
│ ├── build.gradle
│ └── src
└── component2
├── build.gradle
└── src
對於每個項目,我們將應用Java插件。 這個插件引入的標准約定的唯一區別是你的源文件位於目錄src
而不是src/main/java
。 要配置它,您需要將所有內容放入build.gradle
文件中,其中包含以下內容:
apply plugin: 'java'
sourceSets {
main {
java {
srcDirs = ['src']
}
}
}
如果為任何項目執行gradle build
,Gradle將編譯生產和測試源代碼,運行單元測試並在目錄build/libs
下組裝JAR文件。
編輯:
您可以像Matt在他的評論中解釋的那樣實現這一點,也可以采用多項目構建方法。 我把以下代碼示例放在一起給你一個想法。 在項目的根級別創建兩個文件: build.gradle
和settings.gradle
。
.
└── your-project
├── build.gradle
├── settings.gradle
├── component1
│ └── src
└── component2
└── src
在settings.gradle
文件中包含屬於您的構建的項目,如下所示:
include 'component1', 'component2'
然后在build.gradle
文件中,只需將項目定義放入subprojects
配置塊中即可定義一次。 這意味着它適用於您構建的所有子項目。 使用此方法,您可以定義常見行為,而無需重復代碼。
subprojects {
apply plugin: 'java'
sourceSets {
main {
java {
srcDirs = ['src']
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.