【问题标题】:Publishing Library using Kotlin DSL使用 Kotlin DSL 发布库
【发布时间】:2019-09-21 23:38:27
【问题描述】:

我想使用 Kotlin DSL 发布一个 Android 库。我遇到了一些错误

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

找不到名称为“main”的源集。

publishing {
    publications {
        create<MavenPublication>("maven") {
            groupId = artifactGroup
            artifactId = artifactID
            version = artifactVersion

            from(components["java"])
            artifact(sourcesJar.get())

            pom {
                ...
            }
        }
    }
}

找不到名称为“java”的SoftwareComponentInternal。

这些块在库模块build.gradle.kts中。
Gradle 版本:5.6.2

我该如何解决这些问题?

提前致谢。

更新

需要使用android源码集。

val androidSourcesJar by tasks.registering(Jar::class) {
    archiveClassifier.set("sources")
    from(android.sourceSets.getByName("main").java.srcDirs)
}

【问题讨论】:

  • 您找到解决方案了吗?我和你的情况完全一样
  • @ThanosFisherman 我更新了我的问题。

标签: android kotlin publishing gradle-kotlin-dsl


【解决方案1】:

我必须分别应用java 插件apply plugin: "java"。像这样添加它:

plugins {
 id 'java'

获取更多关于SoftwareComponent in the official gradle docs的信息。

【讨论】:

    猜你喜欢
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2018-02-17
    • 1970-01-01
    • 2021-03-25
    • 2021-02-22
    • 1970-01-01
    相关资源
    最近更新 更多