2016-07-06 3 views
1

Versuch, ein Glas mit Gradle zu bauen, das einige Federabhängigkeiten hat und in ein Nexus-Repository legt. und Mein build.gradle sieht aus wie untenWie kann ich das Glas so verpacken, dass abhängige Frühlingsgläser es nicht in mein endgültiges Glas geben, sondern es einem Maven-Repository zuwenden?

dependencies { 

compile group: 'org.springframework', name: 'spring-jdbc', version: '3.1.0.RELEASE' 



compile("org.springframework.cloud:spring-cloud-spring-service-connector:1.2.2.RELEASE") 
compile("org.springframework.cloud:spring-cloud-cloudfoundry-connector:1.2.2.RELEASE") 

    } 

Wenn ich mein Glas mit diesem bündeln es gerade diese Gläser in meinem letzten Glas enthält.

jar { 
baseName = 'npswo-framework' 
version = '0.1.0' 
from { 
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } 
} 


} 

Ich suche nach etwas, wo mein letztes Glas einen Hinweis auf diese Gläser haben sollte durch META-INF sein kann und sie herunterladen, wenn jemand mein Glas herunterladen.

Zeit, wenn jemand herunterladen oder mein Glas in Zusammenhang verweisen sie eine Feder jar Ordner unter meinem Glas und sie dupliziert werden, wenn das Projekt bereits Feder Referenz hat

+0

Warum überhaupt tun Sie das statt einfach Klasse packen das Glas mit seinen normalen Inhalten durch Entfernen der gesamten aus Teil? meine jar {} config enthält normalerweise nur einen Manifestteil –

+0

normalerweise sind die Abhängigkeiten in der pom.xml gespeichert. Um dies zu aktivieren, fügen Sie das Plugin 'maven-publish' hinzu. –

+0

Wenn Sie ein Standard-Jar von Spring betrachten, wird es seinen eigenen Inhalt (Klassen) und abhängigen Jars in meta-inf pom.xml haben Gradel. Zum Beispiel können Sie Spring-Data-Rest-Mvc-Jar beziehen, es hat seine eigenen Klassen und pom.xml in Metainf/Maven/... wenn jemand dieses Glas zusammen mit Rest-Mvc alle anderen Gläser auch wird hinzugefügt. –

Antwort

0

Maven veröffentlichen Plugin in gradle das Problem gelöst, wir folgen können, ein beliebiges Beispiel für das Erstellen von Publish-Plugin in Gradle