[英]How to get 'allJava' from sourceSets with Kotlin Gradle DSL in Gradle 4.10.3?
我正在嘗試遵循 Gradle 4.10.2 文檔中的 Maven Publish 指南,但遇到了一些困難,因為它都在 Groovy 中。 這是示例所說的操作:
task sourcesJar(type: Jar) {
from sourceSets.main.allJava
classifier = 'sources'
}
task javadocJar(type: Jar) {
from javadoc
classifier = 'javadoc'
}
這就是我想要做的:
tasks.register<Jar>("sourcesJar") {
from(project(":core").sourceSets.allJava)
classifier = "sources"
}
tasks.register<Jar>("javadocJar") {
from(tasks["javadoc"])
classifier = "javadoc"
}
allJava
是, allJava
返回未找到。 在 Kotlin Gradle DSL For Gradle Version 4.10.3 中執行此操作的正確方法是什么?
Kotlin DSL 1.1.3 的正確build.gradle.kts
語法應該是:
plugins {
`java-library`
`maven-publish`
}
tasks.register<Jar>("sourcesJar") {
from(sourceSets.main.get().allJava)
archiveClassifier.set("sources")
}
tasks.register<Jar>("javadocJar") {
from(tasks.javadoc)
archiveClassifier.set("javadoc")
}
順便說一句, classifier
屬性被標記為@Deprecated
- 你應該使用archiveClassifier
代替。
[更新]
然而, Gradle 4.10.3有Kotlin DSL 1.0-rc-6 ,因此build.gradle.kts
應該是這樣的:
plugins {
`java-library`
`maven-publish`
}
tasks.register<Jar>("sourcesJar") {
from(sourceSets["main"].allJava)
classifier = "sources"
}
tasks.register<Jar>("javadocJar") {
from(tasks["javadoc"])
classifier = "javadoc"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.