Ответ 1
Вы не применили плагин maven-publish
, который, как ожидается, будет присутствовать с плагином artifactory
.
Пожалуйста, посмотрите документация, также этот ответ может помочь (обратите внимание, что имена плагинов меняются).
Я работаю с Gradle и Artifactory, и я использовал пример, который работает некорректно с этого примера сайта У меня есть это сообщение об ошибке:
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
}
}
}
Большое спасибо
Вы не применили плагин maven-publish
, который, как ожидается, будет присутствовать с плагином artifactory
.
Пожалуйста, посмотрите документация, также этот ответ может помочь (обратите внимание, что имена плагинов меняются).
Я потерял много времени, так как Artifactory docs использует устаревшие версии для 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+"
}
}
модуль build.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
}
}
}