Gradle Artifactory 插件不生成 Pom 文件

Posted

技术标签:

【中文标题】Gradle Artifactory 插件不生成 Pom 文件【英文标题】:Gradle Artifactory Plugin Not Generating Pom File 【发布时间】:2014-10-29 08:28:30 【问题描述】:

当我尝试“artifactoryPublish”到远程工件存储库时,出现了一个奇怪的问题。

我有任务运行

./gradlew clean jar artifactoryPublish

仅在几天前有效。现在我收到此错误:

:artifactoryPublish FAILED

FAILURE: Build failed with an exception.

* What went wrong:
A problem was found with the configuration of task ':artifactoryPublish'.
> File '/Users/me/Programming/android/LibraryPlugin/build/poms/pom-default.xml'      specified for property 'mavenDescriptor' does not exist.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more      log output.

我做错了什么?

【问题讨论】:

最好使用 --stacktrace 选项运行以获取更多信息。 【参考方案1】:

我遇到了类似的问题,我已经优化了 gradle.properties 以便快速编译。

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx3072m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true

删除它们一次并编译代码工作,您可以在生成 pom 后将它们添加回来。

很可能“parallel=true”是罪魁祸首。

希望对您有所帮助!

【讨论】:

天哪,这很有帮助!对我来说,我需要禁用configureondemand 太棒了!谢谢! 太好了,非常感谢。添加 org.gradle.configureondemand=true 对我有帮助。【参考方案2】:

问题中的 Gradle build sn-p 可能很有用,但如果我不得不盲目猜测,我敢打赌你没有应用 mavenmaven-publish 插件(或者你应用了错误的插件)。

【讨论】:

我在使用 android-maven 时遇到了同样的问题,就像在 gradle-android-aar 示例中一样。我向插件仓库提交了一个问题 > github.com/dcendents/android-maven-plugin/issues/17. @JBaruch,我也遇到了类似的错误,但我确实应用了 maven 和 maven-publish 插件。 @Jason 值得一个单独的问题,其中包含您的构建脚本。 @JBaruch:这个错误似乎是 gradle 2.4 及更高版本的问题。 jfrog.com/jira/browse/GAP-174【参考方案3】:

我们在升级 Gradle 版本后遇到了同样的问题,但发现这是使用 com.github.dcendents.android-maven 插件的旧设置的问题。为了解决这个问题,我们删除了配置块,而是创建了一个任务来创建 pom-defaults.xml 文件。这是我们的 gradle 文件的相关部分:

task writeNewPom 
    pom 
        project 
            packaging 'aar'
            name 'Some Name'
            url 'http://www.example.com'
            licenses 
                license 
                    name 'The Apache Software License, Version 2.0'
                    url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    distribution 'repo'
                
            
        
    .writeTo("$buildDir/poms/pom-default.xml")


artifactoryPublish 
    dependsOn assembleRelease
    dependsOn sourcesJar
    dependsOn writeNewPom

【讨论】:

要使其正常工作,您需要将整个 pom 块包装在 doLast 块中。【参考方案4】:

我在我的 AS 项目中使用自定义插件。我将自定义插件中的 gradle 版本更改为我在 AS 中使用的相同版本。然后,我通过终端执行命令,而不是从 AS 运行。为我工作

【讨论】:

【参考方案5】:

有同样的问题。我通过简单地运行任务来解决它:

./gradlew generatePomFileForWarPublishPublication

由神器插件提供。

【讨论】:

【参考方案6】:

这个问题可以简单的通过命令行发布来解决 而不是通过 Android Studio ./gradlew clean module_name:artifactoryPublish [链接]https://github.com/dcendents/android-maven-gradle-plugin/issues/17

【讨论】:

以上是关于Gradle Artifactory 插件不生成 Pom 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 maven-publish 和 artifactory-gradle-plugin 生成 maven-metata.xml?

artifactory gradle 插件覆盖快照版本

使用 Gradle-Artifactory 插件发布子项目

Jenkins Artifactory 插件(gradle)不从 gradle.properties 读取版本

没有使用 jenkins gradle artifactory 插件部署的工件

如何从自定义插件设置 Gradle Artifactory Publish 插件默认配置/属性