Gradle Artifactory 发布错误
Posted
技术标签:
【中文标题】Gradle Artifactory 发布错误【英文标题】:Gradle Artifactory publication error 【发布时间】:2015-02-18 14:13:16 【问题描述】:我是使用 Gradle 和 Artifactory 的新手,我使用了一个无法正常工作的示例 example site 我收到以下错误消息:
Extension of type 'PublishingExtension' does not exist. Currently registered extension types: [DefaultExtraPropert iesExtension, DefaultArtifactPublicationSet_Decorated, ReportingExtension_Decorated, DefaultProjectComponentContai ner_Decorated, DefaultProjectSourceSet_Decorated, DefaultBinaryContainer_Decorated]
我在这一行有一个错误:
defaults
publications ('mavenJava')
有人可以帮助我解决这个问题我已经被这个问题困扰了很长时间。
在查看了 JBaruch 推荐的链接并与代码进行比较后,我更改了插件,但仍然存在同样的问题。也许我混淆了什么? (这就是为什么我会发布整个源代码)
buildscript
repositories
maven
url 'http://.../artifactory/libs-release'
credentials
username = "$artifactory_user"
password = "$artifactory_password"
name = "maven-main-cache"
dependencies
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1"
apply plugin: 'scala'
apply plugin: 'maven-publish'
apply plugin: "com.jfrog.artifactory"
version = '1.0.0-SNAPSHOT'
group = 'com.buransky'
repositories
add buildscript.repositories.getByName("maven-main-cache")
dependencies
compile 'org.scala-lang:scala-library:2.11.2'
tasks.withType(ScalaCompile)
scalaCompileOptions.useAnt = false
artifactory
contextUrl = "$artifactory_contextUrl"
publish
repository
repoKey = 'libs-snapshot-local'
username = "$artifactory_user"
password = "$artifactory_password"
maven = true
defaults
publications ('mavenJava')
publishing
publications
mavenJava(MavenPublication)
from components.java
非常感谢
【问题讨论】:
【参考方案1】:您没有应用 maven-publish
插件,该插件预计将与 artifactory
插件一起出现。
请查看the documentation,this answer 可能会有所帮助(注意插件名称更改)。
【讨论】:
我应用了插件:'maven-publish' 作为示例,并检查了插件的版本是否正确,因为正如您所说的名称发生了变化(在本例中为 com.jfrog.artifactory),但仍然没有结果。我发布了我的源代码,仅供参考,谢谢。 我尝试了所有类型的插件,但仍然没有任何成功,并且在出版物(mavenJava)参考中一直存在同样的问题。可能与 Maven 存储库有关? 我今天也尝试使用 gradle & android 的 artifactory 插件,和你一样的错误。 github.com/JFrogDev/project-examples/tree/master/… 的工件示例是最新的 android gradle 插件后面的几个版本......并且也没有“maven-publish”插件。 伙计们,你们使用的是哪个 Gradle 版本? 问题解决了我的错误,因为我没有在根目录上使用主 build.gradle,因为我有不同的模块,并且我正在从其中一个运行出版物。代码非常完美,非常感谢 JBaruch。我的 gradle 版本是 2.1【参考方案2】:由于 Artifactory 文档使用过时的 Android Studio 和 gradle 插件版本,我在这方面浪费了很多时间,所以这是我使用 AS 1.5.1 和 gradle 1.5.0 的工作配置:
全局构建.gradle
buildscript
repositories
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:1.5.0'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
模块构建.gradle
apply plugin: 'com.jfrog.artifactory'
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
publishing
publications
maven(MavenPublication)
groupId packageName
version = libraryVersion
artifactId project.getName()
artifact("$buildDir/outputs/aar/$project.getName()-release.aar")
artifactory
contextUrl = // yours
publish
repository
// The Artifactory repository key to publish to
repoKey = 'libs-release-local'
username = // yours
password = // yours
defaults
publishArtifacts = true
publications ('maven')
// Properties to be attached to the published artifacts.
properties = ['qa.level': 'basic', 'dev.team': 'core']
// Publish generated POM files to Artifactory (true by default)
publishPom = true
【讨论】:
以上是关于Gradle Artifactory 发布错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Artifactory 和/或 Gradle 自动化版本号
Gradle 发布到 Artifactory 的特定 repo