[英]Creating a single source jar for a multi-module gradle project
我有一個多模塊 gradle 項目設置,如下所示:
Module A (Parent)
-build.gradle
-settings.gradle
+Module B
--src
---main
----java
----kotlin
--build.gradle
+Module C
--src
---main
----java
----kotlin
--build.gradle
在這種情況下,模塊 B 對模塊 C 具有編譯時間依賴性。
我想創建一個源 jar 包括來自所有子項目的源以發布到我的存儲庫。
在單個模塊構建中,我已將以下內容添加到我的項目中,但將其添加到所有子項目中不會導致在 jar 生成的源中收集源集:
sourceSets {
main.kotlin.srcDirs += 'src/main/kotlin'
main.java.srcDirs += 'src/main/java'
}
task sourcesJar(type: Jar) {
from sourceSets.main.kotlin
from sourceSets.main.java
archiveClassifier = 'sources'
}
我怎樣才能做到這一點? ShadowJar 有效,但不幸的是,據我所知,它不提供創建源 jar 的選項。
我們找到了解決方案 - 將子模塊部署為獨立源 jar 並單獨包含它們。
例如,在每個子模塊中:
sourceSets {
main.kotlin.srcDirs += 'src/main/kotlin'
main.java.srcDirs += 'src/main/java'
}
task sourcesJar(type: Jar) {
from sourceSets.main.kotlin
from sourceSets.main.java
archiveClassifier = 'sources'
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId = rootProject.group
artifactId = "$rootProject.name-$project.name"
version = rootProject.project.version
from components.java
artifact sourcesJar
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.