首页 > 解决方案 > 使用 Gradle Kotlin DSL 构建源 jar?

问题描述

这个问题询问如何使用 Gradle 构建 SourceJar。如何使用 Gradle Kotlin DSL 做同样的事情?

gradle 代码将是:

task sourcesJar(type: Jar, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

标签: gradlekotlingradle-kotlin-dsl

解决方案


使用 Gradle 5.3.1,这更好一些,并且避免了弃用的 API:

tasks {    
    val sourcesJar by creating(Jar::class) {
        archiveClassifier.set("sources")
        from(sourceSets.main.get().allSource)
    }

    val javadocJar by creating(Jar::class) {
        dependsOn.add(javadoc)
        archiveClassifier.set("javadoc")
        from(javadoc)
    }

    artifacts {
        archives(sourcesJar)
        archives(javadocJar)
        archives(jar)
    }
}

任务assemble将创建所有工件。


推荐阅读