2015-02-18 17 views
13

Sono nuovo a lavorare con Gradle e Artifactory e ho usato un esempio che non funziona correttamente da questo example site ho questo messaggio di errore:Gradle Artifactory pubblicazione errore

Extension of type 'PublishingExtension' does not exist. Currently registered extension types: [DefaultExtraPropert iesExtension, DefaultArtifactPublicationSet_Decorated, ReportingExtension_Decorated, DefaultProjectComponentContai ner_Decorated, DefaultProjectSourceSet_Decorated, DefaultBinaryContainer_Decorated] 

ho un errore in questa linea:

defaults{ 
    publications ('mavenJava') 
} 

Qualcuno potrebbe aiutarmi con questo sono stato bloccato in questo problema per così tanto tempo.

Dopo aver esaminato i collegamenti come consigliato da JBaruch e confrontato con il codice, ho modificato il plug-in ma ho ancora lo stesso problema. Forse sto confondendo qualcosa? (Ecco perché mi post il codice sorgente intero)

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 
     } 
    } 
} 

ringrazio molto

risposta

8

non è stato applicato il plugin maven-publish che dovrebbe essere presente anche con artifactory plugin.

Si prega di dare un'occhiata a the documentation, anche this answer potrebbe aiutare (notare i nomi dei plugin cambiare).

+1

ho applicato il plugin: 'Maven-pubblicano' come l'esempio e ho controllato se la versione del plugin è corretto perché come hai detto i nomi cambiano (in questo caso com.jfrog.artifactory), ma ancora nessun risultato. Ho pubblicato il mio codice sorgente FYI grazie. –

+0

Ho provato tutti i tipi di plugin, ma ancora non ho alcun successo e continua ad avere gli stessi problemi sul riferimento alle pubblicazioni (mavenJava). Potrebbe essere correlato a un repository di maven? –

+0

Stavo cercando di utilizzare il plugin artifactory per gradle & android oggi stesso, lo stesso errore di te stesso. L'esempio di artefatto su https://github.com/JFrogDev/project-examples/tree/master/gradle-android-aar è alcune versioni dietro il più recente plug-in Android gradle ... e inoltre non ha il plugin "maven-publish". – McNinja

3

ho perso un sacco di tempo su questo dato docs Artifactory utilizzano obsoleti Studio Android & plugin Gradle versioni, ecco la mia conf lavoro con AS 1.5.1 e 1.5.0 Gradle:

build.gradle globale

buildscript { 
    repositories { 
    jcenter() 
    } 
    dependencies { 
    classpath 'com.android.tools.build:gradle:1.5.0' 
    classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+" 
    } 
} 

modulo 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 
    } 
    } 
} 
Problemi correlati