如何在 Gradle 4.10.3 中使用 Kotlin Gradle DSL 从 sourceSets 获取 'allJava'?
How to get 'allJava' from sourceSets with Kotlin Gradle DSL in Gradle 4.10.3?
我正在尝试遵循 Gradle 4.10.2 文档中的 Maven 发布指南,但遇到了一些困难,因为它都在 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
返回未找到。在 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"
}
我正在尝试遵循 Gradle 4.10.2 文档中的 Maven 发布指南,但遇到了一些困难,因为它都在 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
返回未找到。在 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"
}