gpt4 book ai didi

gradle - 如何在Gradle 4.10.3中使用Kotlin Gradle DSL从sourceSets中获取 'allJava'?

转载 作者:行者123 更新时间:2023-12-02 12:53:42 42 4
gpt4 key购买 nike

我试图遵循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版本4.10.3中,执行此操作的正确方法是什么?

最佳答案

Kotlin DSL的正确build.gradle.kts语法 1.1.3 应为:

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 - 如何在Gradle 4.10.3中使用Kotlin Gradle DSL从sourceSets中获取 'allJava'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54695079/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com