新手搖籃query.Consider以下項目搖籃有多個罐平坦項目在一個項目中
Project
|
-component_1
|
-component_2
我想從每個組件源,它位於src目錄下產生一個罐的結構。請注意,這不是一個多項目場景,而是多分量場景。我如何能做到這一點的搖籃(1.6)
更新:
一個構建文件是必需的,而不是每個分量具有獨立的編譯
新手搖籃query.Consider以下項目搖籃有多個罐平坦項目在一個項目中
Project
|
-component_1
|
-component_2
我想從每個組件源,它位於src目錄下產生一個罐的結構。請注意,這不是一個多項目場景,而是多分量場景。我如何能做到這一點的搖籃(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
,搖籃將編譯您的生產和測試的源代碼,運行單元測試和組裝目錄build/libs
下的JAR文件。
編輯:
您可以實現馬特解釋了他的評論這種方式或去多項目構建方法。我把下面的代碼示例放在一起給你看。在項目的根級創建兩個文件: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']
}
}
}
}
的基本方法是通過{{project.artifact}}添加的東西,可能代表了組件命名sourcesets但我要說一個很好的答案將是很難沒有一些額外的上下文來寫。例如你爲什麼不想使用多項目?你打算用罐子做什麼,在什麼地方發佈它們?他們是相關的還是獨立的?他們是普通的Java源代碼或其他東西? – Matt
謝謝 問:爲什麼不多項目?答:現有代碼,無法更改結構 問:如何處理jar?答:將它們打包成單個檔案,但可能後來獨立發佈它們 問:相關?答:其中一些是相關的。 – anergy