Подтвердить что ты не робот

Gradle Ошибка публикации 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
        }
    }
}

Большое спасибо

4b9b3361

Ответ 1

Вы не применили плагин maven-publish, который, как ожидается, будет присутствовать с плагином artifactory.

Пожалуйста, посмотрите документация, также этот ответ может помочь (обратите внимание, что имена плагинов меняются).

Ответ 2

Я потерял много времени, так как 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
    }
  }
}