【问题标题】:SoftwareComponentInternal with name 'java' not found未找到名为“java”的 SoftwareComponentInternal
【发布时间】:2020-07-19 15:18:38
【问题描述】:

应用模块build.gradle

apply plugin: 'com.android.library'
apply from: rootProject.file('deploy-bintray.gradle.kts')
android {...}

deploy-bintray.gradle.kts 这是我的 bintray/maven 发布脚本。

我在生成 .jar 文件时遇到问题:

val sourcesJar by tasks.registering(Jar::class) {
    archiveClassifier.set("sources")
    from(project.the<SourceSetContainer>()["main"].allSource)
}

publications {
        create<MavenPublication>(bintrayRepo) {
            groupId = publishedGroupId
            artifactId = artifact
            version = libraryVersion

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

它失败了:

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

或者,如果我评论 from(components["java"]) 它会失败:

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

如果我添加 java 插件:

'java' 插件已应用,但它与 Android 插件。

所以我被困在这里。我该如何解决这个问题?

【问题讨论】:

  • 我也受此困扰。
  • 在任何地方都找不到关于此的帮助...
  • @Mr.Moustard 我找到了解决方案
  • 我试试看。谢谢

标签: gradle android-gradle-plugin maven-plugin gradle-kotlin-dsl bintray


【解决方案1】:

我终于找到了解决办法!
我做错了一些事情,首先,dokkaJarsourceJar 任务都必须在主 build.gradle 中,而不是在 deploy-bintray.gradle.kts 中。移动它们使其工作并修复:

SourceSet with name 'main' not found.

其次,我们不能使用 from(components["java"]),因为这是一个 Android 库,所以我用 artifact("$buildDir/outputs/aar/${artifactId}-release.aar") 替换了该行。

最后但并非最不重要的一点,如 here (step 7) 所述:

"另外,生成的POM文件不包含依赖链所以 必须明确添加..."

我必须添加这个:

pom {
...
    withXml {
       val dependenciesNode = asNode().appendNode("dependencies")
       configurations.getByName("implementation") {
         dependencies.forEach {
            val dependencyNode = dependenciesNode.appendNode("dependency")
            dependencyNode.appendNode("groupId", it.group)
            dependencyNode.appendNode("artifactId", it.name)
            dependencyNode.appendNode("version", it.version)
         }
       }     
    }       
}

【讨论】:

    猜你喜欢
    • 2019-03-12
    • 2018-09-17
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 2023-03-11
    • 2011-08-24
    相关资源
    最近更新 更多