2015-02-18 10 views
13

Jestem nowym pracy z Gradle i Artifactory i użyłem przykładu, który nie działa poprawnie z tym example site mam ten komunikat o błędzie:Gradle publikacja Artifactory błąd

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

mam błąd w tej linii:

defaults{ 
    publications ('mavenJava') 
} 

Ktoś mógłby mi w tym pomóc. Od tak dawna tkwię w tym numerze.

Po przejrzeniu linków zalecanych przez JBaruch i porównaniu z kodem, zmieniłem wtyczkę, ale wciąż ten sam problem. Może coś mylę? (dlatego będę pisać kod źródłowy całego)

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

Dziękuję bardzo

Odpowiedz

8

Nie stosować maven-publish plugin, który jest oczekiwany być obecny z artifactory wtyczki.

Proszę spojrzeć na the documentation, może również pomóc this answer (należy zwrócić uwagę na zmianę nazw wtyczek).

+1

Zgłosiłem wtyczki: „Maven publikuje” jako przykład i sprawdziłem, czy wersja wtyczki jest poprawna, ponieważ jak powiedział nazwy zmieniają się (w tym przypadku com.jfrog.artifactory), ale nadal nie dają żadnego wyniku. Wysłałem swój kod źródłowy FYI, dziękuję. –

+0

Próbowałem wszelkiego rodzaju wtyczek, ale nadal nie mam żadnego sukcesu i nadal ma takie same problemy na odniesienie publikacji (mavenJava). Może być związane z repozytorium maven? –

+0

Próbowałem użyć wtyczki sztucznej dla gradle & android dzisiaj również, ten sam błąd co ty. Sztuczny przykład na https://github.com/JFrogDev/project-examples/tree/master/gradle-android-aar jest kilka wersji za najnowszą wtyczką android gradle ... a także nie ma Wtyczka "maven-publish". – McNinja

3

straciłem dużo czasu na to, ponieważ Artifactory docs użyciu przestarzałych Android Studio & Gradle wersje wtyczek, więc tutaj jest mój conf pracy z AS 1.5.1 i 1.5.0 Gradle:

globalnej build.gradle

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

moduł 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 
    } 
    } 
} 
Powiązane problemy