2015-02-18 3 views
13

Я новичок работает с Gradle и Artifactory и я использовал пример, который не работает правильно с этой example site у меня есть сообщение об ошибке: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 
     } 
    } 
} 

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

ответ

8

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

Пожалуйста, обратите внимание на the documentation, также может помочь this answer (обратите внимание, что имена плагинов меняются).

+1

Я применил плагин: «Maven опубликовать» в качестве примера, и я проверил, если версия плагина является правильным, потому что, как вы сказали имена изменяются (в этом случае com.jfrog.artifactory), но все равно никакого результата. Я отправил свой исходный код FYI спасибо. –

+0

Я пробовал всевозможные плагины, но все же у меня нет никакого успеха, и у него все те же проблемы с публикацией (mavenJava). Может быть связано с хранилищем maven? –

+0

Я тоже пытался использовать плагин artifactory для gradle & android сегодня, такую ​​же ошибку, как и вы. Пример artifactory в https://github.com/JFrogDev/project-examples/tree/master/gradle-android-aar - это несколько версий за последним плагином для Android-градиента ... и также не имеет Плагин «maven-publish». – McNinja

3

я потерял много времени на это, так как Artifactory документы используют устаревшие Android Studio & Gradle плагины версии, так вот мой рабочий конф с AS 1.5.1 и 1.5.0 Gradle:

глобальной 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 
    } 
    } 
} 
Смежные вопросы