Orderstruktur bei Libarys - Wie mit Ant oder Maven lösen?

Hallo,

ich nutze für das Deployment meiner Programme meist Maven, kenne mich aber auch etwas mit Ant aus. Nun habe ich das Problem, dass meine Anwendungen viele Libaries von Drittanbietern nutzen. Bisher wurden diese (mit dem assembly-plugin) in ein Verzeichnis lib gepackt, um das Ganze etwas zu struktureren. Die Mainfest.mf wurde ebenfalls automatisch generiert. Soweit funktioniert das auch immer tadelos.

Nun ist mir schon bei einigen Javaapplikationen eine andere Struktur aufgefallen. In dieser werden die externen jars nach ihrem Packages / GroupID sortiert. (TDL/Domainname/AppName/Version)

Ein Beispiel:


lib/org/apache/commons-io/2.4/commons-io-2.4.jar
lib/org/apache/commons-log/1.8/commons-log-1.8.jar
....

Mir persönlich gefällt diese Sturktur sehr gut. Ob die Versionsnummer sinnvoll ist oder nicht sei mal dahingestellt. Weis jemand wie man diese Sturktur automatisch generierenkann? Funktioniert das mit Ant oder Maven? Oder wird hier ein vollkommen anderes Tool verwendet?

Und wie funktioniert es an der Stellen, dass alle Jars in den Unterordnern gefunden werden (sprich generierung der Mainfest.mf)?

Bin für jeden Hilfe dankbar.

Gruß
CrommCruach

Sieht aus wie das oder?

Hi,

warum hast Du die Sachen mit maven-assembly-pluing in ein lib folder legen lassen ? Was für einen Anwendung ist das bzw. wohin deployst Du ? Application Server (JBoss/ Glassfisch) oder Tomcat ? Kannst Du da noch ein paar Details mehr liefern…

Warum einen Lib Folder?

Gruß
Karl-Heinz

Ist ne gewöhnliche Java SE Anwendung
@musiKk : Ne ist nicht das was ich suche. Damit wird ein lokales repo erstellt. Die Struktur passt in etwa aber in den Verzeichnissen liegen dann die pom.xml anstatt die Jars.

Letzter Versuch: Laut genanntem Beispiel sollte dort alles dabei sein. Und laut Doku des Assembly Descriptor kann man auch includes und excludes definieren.

Hi,

du kannst mit Maven Assembly Plugin ein Archive (tar.gz / zip) erzeugen mit einem lib Verzeichnis, dass dann die Dateien in der gewünschten Form enthält…Oder Du kannst das format dir verwenden…

Du kannst auch nocht mit appassembler-maven-plugin eine shell/batch File erzeugen lassen, den Du dann zum Aufruf nutzen kannst…mit der Strukturierung in einen Lib-Folder etc.

Beispiel: https://github.com/khmarbaise/supose/blob/master/supose-assembly/pom.xml

Gruß
Karl-Heinz Marbaise

@kama :

Coole Sache. Der Appassembler war exat das was ich benötigt habe. Neben der Batch-File legt er mir dem lib-“Folder” (als Repo) in der von mit gewünschten Struktur an. Mit Maven Assembly kann ich mir das im grunde wie in deinem Beispiel meine Archive zusammenbasteln.

Vielen Danke!

Gruß
CrommCruach