2013-11-21 16 views
9

Ich habe Gradle konfiguriert Projekt Artefakt veröffentlichen new Maven Publisher Plugin verwenden, leider dieses Plugin hat Problem mit Abhängigkeit in generierten pom.xml - Abhängigkeiten Umfang runtime statt compile.Publishing Artefakt aus gradle Projekt bintray (Maven-Repository)

Meine Konfiguration ist wie folgt:

apply plugin: 'maven-publish' 

publishing { 
    publications { 
     mavenCustom(MavenPublication) { 
      from components.java 
     } 
    } 
    repositories { 
     maven { 
      url "https://api.bintray.com/maven/codearte/public/fairyland" 
      credentials { 
       username = bintrayUser 
       password = bintrayKey 
      } 
     } 
    } 
} 

Publishing mit einem Befehl einfach war:

gradle publish 

Wie dies in der alten zu erreichen (in Betrieb) Art und Weise? Ist es möglich, das Projekt-Taging zu automatisieren, wenn das Projekt veröffentlicht wird?

Antwort

6

Ok, ich es herausgefunden:

apply plugin: 'maven' 

uploadArchives { 
    repositories { 
     mavenDeployer { 
      name = 'Codearte Public Repository' 
      repository(id: 'codearte-repository', url: 'https://api.bintray.com/maven/codearte/public/fairyland'){ 
       authentication(userName: bintrayUser, password: bintrayKey) 
     } 
    } 
} 

Hochladen mit dem Befehl:

gradle uploadArchives 
+4

ich auch würde vorschlagen, dass Sie einen Blick auf die [bintray gradle Plugin] (https: //bintray.com/jfrog/jfrog-jars/grad le-bintray-plugin). Es macht das Publizieren für Bintray viel einfacher. – JBaruch

3

Die Tatsache, dass alle POM-Abhängigkeiten runtime Geltungsbereich haben, ist eine bekannte Einschränkung des neuen, inkubierenden maven-publish-Plugins. Bis dies behoben ist, können Sie es entweder selbst beheben, indem Sie den publication.pom.withXml Haken verwenden, oder auf das maven Plugin zurückgreifen. Beide Plugins sind in der Gradle User Guide dokumentiert.

Tagging ist eine ganz andere Frage. Sie können entweder eines der Gradle SCM-Plugins von Drittanbietern verwenden oder ein Befehlszeilentool aufrufen (z. B. mit einer Task Exec).

+2

Können Sie ein exemple des pom.withXml zeigen? – BrunoJCM

+2

Meiner Meinung nach ist das neue Gravel 'maven-plugin' nicht mehr neu, aber das Problem besteht immer noch. – MariuszS

+4

Wird dieses "neue, inkubierende" Plugin jemals fertig sein? –

Verwandte Themen