Mor*_*oth 4 gradle kotlin gradle-kotlin-dsl
此问题询问如何使用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
}
Run Code Online (Sandbox Code Playgroud)
Col*_*ard 10
从Gradle 6.0 开始,这是一个更容易和更干净的方法。您需要做的就是:
java {
withSourcesJar()
withJavadocJar()
}
Run Code Online (Sandbox Code Playgroud)
查看有关java 扩展及其函数的文档,withSourcesJar()和withJavadocJar()
以下将起作用:
val sourcesJar by creating(Jar::class) {
dependsOn(JavaPlugin.CLASSES_TASK_NAME)
classifier = "sources"
from(sourceSets["main"].allSource)
}
val javadocJar by creating(Jar::class) {
dependsOn(JavaPlugin.JAVADOC_TASK_NAME)
classifier = "javadoc"
from(tasks["javadoc"])
}
artifacts {
add("archives", sourcesJar)
add("archives", javadocJar)
}
Run Code Online (Sandbox Code Playgroud)
一个完整的build.gradle.kts
看起来像这样:
plugins {
kotlin("jvm") version "1.2.71"
}
repositories {
mavenCentral()
}
dependencies {
}
tasks {
val sourcesJar by creating(Jar::class) {
dependsOn(JavaPlugin.CLASSES_TASK_NAME)
classifier = "sources"
from(sourceSets["main"].allSource)
}
val javadocJar by creating(Jar::class) {
dependsOn(JavaPlugin.JAVADOC_TASK_NAME)
classifier = "javadoc"
from(tasks["javadoc"])
}
artifacts {
add("archives", sourcesJar)
add("archives", javadocJar)
}
}
Run Code Online (Sandbox Code Playgroud)
对于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)
}
}
Run Code Online (Sandbox Code Playgroud)
任务assemble
将创建所有工件。
归档时间: |
|
查看次数: |
1643 次 |
最近记录: |