Как получить 'allJava' из исходных наборов с помощью Kotlin Gradle DSL в Gradle 4.10.3? - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь следовать руководству по публикации Maven из документации Gradle 4.10.2, но у меня возникают некоторые трудности, так как все это в 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 для Gradle версии 4.10.3?

1 Ответ

0 голосов
/ 19 февраля 2019

Правильный build.gradle.kts синтаксис для Kotlin DSL 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"
}
...