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 可能很有用,但如果我不得不盲目猜测,我敢打赌你没有应用 maven
或 maven-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?
Jenkins Artifactory 插件(gradle)不从 gradle.properties 读取版本