Gradle人工制品发布错误
我是Gradle和Artifactory的新手,我使用了一个无法正常工作的示例,我收到了以下错误消息:Gradle人工制品发布错误,gradle,artifactory,Gradle,Artifactory,我是Gradle和Artifactory的新手,我使用了一个无法正常工作的示例,我收到了以下错误消息: Extension of type 'PublishingExtension' does not exist. Currently registered extension types: [DefaultExtraPropert iesExtension, DefaultArtifactPublicationSet_Decorated, ReportingExtension_Decorated
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的建议查看链接并与代码进行比较后,我更改了插件,但仍然存在相同的问题。也许我搞混了什么?
(这就是我将发布全部源代码的原因)
非常感谢您没有应用
maven publish
插件,该插件预计将与artifactory
插件一起出现
请看一看,也可能有帮助(注意插件名称的变化)。由于Artifactory文档使用的是过时的Android Studio和gradle插件版本,因此我在这方面浪费了很多时间,以下是我与AS 1.5.1和gradle 1.5.0的工作配置: global build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
}
}
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
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
}
}
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
}
}
}
我应用了插件:“maven publish”作为示例,并检查了插件的版本是否正确,因为正如您所说,名称发生了变化(在本例中为com.jfrog.artifactory),但仍然没有结果。我发布了我的源代码供大家参考,谢谢。我尝试了所有类型的插件,但仍然没有成功,并且在出版物(mavenJava)参考上一直存在同样的问题。可能与maven存储库有关?我今天也在尝试使用gradle&android的artifactory插件,错误与您相同。位于的artifactory示例是最新的android gradle插件后面的几个版本…也没有“maven publish”插件。伙计们,你们使用的是哪个gradle版本?问题解决了我的错误是我没有在根上使用main build.gradle,因为我有不同的模块,并且我是从其中一个模块运行发布的。代码很完美,非常感谢JBaruch。我的gradle版本是2.1