2014-02-13 10 views
10

Artifactory haben zwei vordefinierten Repositories für lokale Bibliotheken zu veröffentlichen:Konfigurieren Gradle des Artifactory Plugin zur Freigabe oder Snapshot-Repository

  • libs-release-local: lokales Repository für Inhouse-Bibliotheken
  • libs-snapshot-local: lokales Repository für die In- Haus Schnappschüsse

Der Artifactory des Gradle Skript-Generator kann ein Skript erzeugen, die nur ein Repository für die Artefakt-Publishing verwendet, mit der artifactory Plugin für Gradle. Hier

ist ein Beispiel (nur der relevante Teil):

artifactory { 
    contextUrl = "${artifactory_contextUrl}" 
    publish { 
     repository { 
      repoKey = 'libs-release-local' 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
      maven = true 

     } 
    } 
    resolve { 
     repository { 
      repoKey = 'libs-release' 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
      maven = true 

     } 
    } 
} 

Ich mag würde das Plugin konfigurieren, dass die libs-release-local oder libs-snapshot-local Repository auf Version basiert zu verwenden (dh wenn Version endet mit -SNAPSHOT dann veröffentlichen, um libs-snapshot-local).

Ich sah dies möglich ist Gradle integrierte maven Plugin (siehe snapshotRepository Element mavenDeployer in uploadArchives Aufgabe), aber diese Funktionalität scheint im artifactory Plugin nicht verfügbar.

Gibt es eine Möglichkeit, dieses gewünschte Verhalten zu erreichen?

Antwort

15

Da es ein grooviger Code ist, gehen Sie einfach voran und verwenden Sie eine Variable, die von der Version abhängt.

String repo = version.endsWith('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local' 

...

repository { 
     repoKey = repo 
     username = "${artifactory_user}" 
     password = "${artifactory_password}" 
     maven = true 

    } 
Verwandte Themen