2016-04-04 11 views
1

Ist es möglich, Gläser in Artefakte zu laden?Upload von verschiedenen Gläsern in Artifactory mit Gradle

Ich habe versucht, mit dem Artifactory-Plugin, aber das funktioniert gut, wenn der Fall nur ein einzelnes Jar aus einer Build-Pipeline hochladen soll.

Wenn ich auch ein Testglas hochladen möchte, wie würde das gehen?

Kann ich eine Konfiguration haben, die angibt, welches jar hochgeladen werden soll? z.B. Testgefäß oder die "normale" JAR-Datei

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      from components.java 
     } 
    } 
} 

artifactory { 
    clientConfig.setIncludeEnvVars(true) 

    contextUrl = 'https://localhost:8081/artifactory/' 
    publish { 
     repository { 
      repoKey = 'libs-release-local' 
      username = "${artifactory_user}" 
      password = "${artifactory_user_password}" 
     } 
     defaults { 
      publications('mavenJava') 
      publishArtifacts = true 
      publishPom = true 
      publishIvy = true 
     } 
    } 
    resolve { 
     contextUrl = 'https://localhost:8081/artifactory' 
     repository { 
     repoKey = 'libs-release-local' 
     username = "${artifactory_user" 
     password = "${artifactory_user_password}" 
     maven = true 
     } 
    } 
} 
+0

welche maven plugin verwenden Sie? der ältere "Maven" oder neuer "Maven-Publish"? – RaGe

+0

Der neuere: https://www.jfrog.com/confluence/display/RTF/Gradle+Artifactory+Plugin – nmarques

+2

Sie verknüpft mit dem Artefakt-Plugin, ich frage nach dem Maven-Plugin. Das Artifactory-Plugin verwendet entweder "publications" oder "publishconfigs", abhängig davon, welches maven-Plugin Sie verwenden, um festzustellen, welche Artefakte veröffentlicht werden sollen. Wenn Sie weitere Artefakte (wie zB test jar) veröffentlichen möchten, fügen Sie einfach eine neue maven-Publikation oder publishconfig hinzu. Ich muss wissen, welches Plugin Sie verwenden, um Ihnen entsprechende Anweisungen zu geben. Es kann helfen, Ihre build.gradle zu teilen. – RaGe

Antwort

1

Um Klassen von Ihrem Test sourceSet (src/test/ Standardeinstellung) zu veröffentlichen, müssen Sie zunächst eine neue Aufgabe definieren, die testJar zu erstellen:

task testJar(type: Jar) { 
    classifier = 'tests' 
    from sourceSets.test.output 
} 

Dann füge es um Ihre Publikationen

publications { 
    mavenJava(MavenPublication) { 
     from components.java 

     artifact testJar { 
      classifier "test" 
     } 
    } 
} 

Da Sie bereits publications('mavenJava') von artifactory veröffentlichen, müssen Sie sich nicht, dass es keine Änderungen vornehmen.

+0

das ist großartig RaGe, vielen Dank. Ich habe noch eine letzte Frage, ist es möglich, den Upload bedingt durchzuführen? Z.B. wenn ich manchmal nur mein Testglas hochladen möchte – nmarques

+0

Ich stelle mir vor, du solltest in der Lage sein, 'artifact testJar {...}' in ein 'if (condition) {}} zu schreiben, aber ich habe es nicht getestet das ich selbst. – RaGe

Verwandte Themen