Ich habe die Maven Montag nur für die in meinem Projekt verwendet.
zuerst Ihr Plugin in Ihrem POM aktivieren und die Assembly Config aufrufen:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<!--I recommend 2.1 as later versions have a bug that may
Duplicate files in your archive
-->
<version>2.1</version>
<!--Executes the packaging along with the mvn package phase
-->
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptors>
<!--Relative path to your descriptor -->
<descriptor>src/main/assembly/package.xml
</descriptor>
</descriptors>
</configuration>
</plugin>
Dann in Ihrem Descriptor können Sie entscheiden, wie Sie Ihr Layout, bevor Sie das Ganze verpacken sein wollen
<assembly>
<!-- this will create an extra resource project-1.1.1-package.zip, you can
choose jar as well in the format-->
<id>package</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<!-- Insert here extra files as configs or, batch files, resources, docs etc-->
<fileSets>
<fileSet>
<directory>src/main/assembly/files</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>**/conf/*.*</include>
<include>**/doc/*.*</include>
</includes>
</fileSet>
<!-- I like to integrate the jre as well... simplifies my deployement -->
<fileSet>
<directory>target/jre</directory>
<outputDirectory>/jre</outputDirectory>
</fileSet>
</fileSets>
<!-- This will scrub your dependencies and add them to your lib folder, I excluded
Test stuff as it is not needed, could have declared the resource as a test
only phase as well would not have had to exclude it here
-->
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
<excludes>
<exclude>junit:junit</exclude>
</excludes>
</dependencySet>
</dependencySets>
</assembly>
Das erstellt eine Zip-Datei mit dem Layout, das Sie in Ihrer Ausgabe-Verzeichnis-Konfiguration angegeben haben, packen das Ganze als Zip-Datei (Sie können zip, jar, war ... wählen) und stellen es mit dem Rest in meinem Repository bereit.
Ich übersprang Bits und Stücke, um es einfacher zu machen, aber mein Paket erweitert Batch-Dateien, dlls, Config, doc und die JRE, so dass alles in der gleichen zip benötigt wird ... alles ist erforderlich, um das Ding zu laufen ist Extrakt und klicke auf start.bat!
Ich könnte es wahrscheinlich auch in ein Glas richtig formatiert mit METADATA machen und doppelklicken Sie einfach auf das Glas selbst, um alles zu starten, ich brauchte oder habe keine Zeit um diese Option zu spielen, aber Sie können es auch versuchen.
Hüten Sie sich vor Versionen über 2.1 des Assembly-Plugins, es erstellt doppelte Einträge, wenn Ihre Anweisungen es ermöglichen, die gleiche Datei an verschiedenen Orten zu finden, dies wird Ihnen einen lib-Ordner mit den gleichen Gläsern zweimal wiederholen. nicht sehr gefährlich, da das Entpacken sie einbüßt, aber immer noch lästig ist, wenn das Unzip dich fragt, ob du Dateien überschreiben willst. Plus die Tatsache, dass Sie nicht wissen, welche gewonnen haben, wenn sie irgendwie anders herausgekommen sind.
Maven ist großartig, aber ich finde, dass es manchmal frustrierend ist, es zum Laufen zu bringen, Plus-Dokumentation kann manchmal schwer zu finden und zu verwenden sein. Bei entsprechender Verwendung sparen Sie jedoch viel Zeit.
viel glück
genial, danke für die ausführliche Antwort. Ich werde es versuchen. –
geben Sie mir einen Buzz, wenn Sie Probleme mit diesem Ansatz haben .. es kann andere Möglichkeiten, um ähnliche Ergebnisse zu erzielen, aber dieses funktioniert gut für mich. – Newtopian
so weit so gut. Ich habe es versucht, aber ein paar andere schnelle Fragen. meine aktuelle Snapshot-Datei endete auch das Lib-Verzeichnis. Ich hatte gehofft, das außerhalb der lib dir zu haben - ist das möglich? kann ich das auch in Verbindung mit dem maven-jar-plugin verwenden, um eine Manifest-Datei zu generieren und diese zu einem ausführbaren jar zu machen? Oder wäre es besser, wenn ich nur ein Skript erstelle, das die App startet und das einbezieht? danke nochmal! –