Java-Dateien bereitstellen

8

Welche Best Practices (und Aktivierungstools) können eigenständige Java-Anwendungen zusammen mit den erforderlichen JAR-Abhängigkeiten, Konfigurationsdateien und Startscripts bereitstellen?

Gibt es irgendwelche Maven-Plugins, die das Veröffentlichen von Binär-Releases erleichtern, so dass Benutzer zum Beispiel nicht maven benutzen müssen?

    
notnoop 18.07.2010, 19:04
quelle

6 Antworten

6
  

Gibt es irgendwelche Maven-Plugins, die das Veröffentlichen von Binär-Releases erleichtern, so dass Benutzer zum Beispiel nicht maven benutzen müssen?

Verwenden Sie das Maven-Assembly-Plugin , um eine Binärdistribution als zip / tar.gz / tar zu erstellen .bz2 Ihres Projekts. Dieses Plugin ist extrem flexibel - zum Preis von etwas Komplexität - und Sie können fast alles tun, was Sie wollen. Dann deploy (im Sinne von Maven) das produzierte Artefakt, lade es irgendwo hoch, etc.

    
Pascal Thivent 18.07.2010 19:57
quelle
3

Was die Abhängigkeit angeht, verwende ich einfach maven-Abhängigkeitskopie Kopieren Sie alle Abhängigkeiten in einen ./lib-Ordner und geben Sie ein Startskript an, das den Klassenpfad-Platzhalter verwendet So können Sie Ihre Abhängigkeiten beliebig ändern und müssen das Startskript nicht ändern. Was die Konfigurationsdateien betrifft, lege ich sie in einen ./config-Ordner und schließe ihn wieder in den Klassenpfad meiner App im Startskript ein (der erste funktioniert zwar nur für & gt; java 1.6).

Am Ende hat fast meine App die folgende Struktur:

%Vor%

Dann werde ich einfach die ganze Sache zippen und es meinen Benutzern geben. Der ganze Prozess ist wahrscheinlich leicht zu automatisieren mit Maven, aber ich gestehe, dass ich es mit der Hand mache: p

Wenn Sie es vorziehen und die Lizenzen erlauben, können Sie auch alle Abhängigkeiten in ein einzelnes jar (mit erweiterten Abhängigkeiten darin) bündeln, indem Sie die Assembly-Plugin . Dies macht das Glas sperrig und gibt den Benutzern eine aktualisierte App. schwieriger. Auch hatte ich Probleme damit, dass Klassendateien überschrieben wurden oder etwas, so dass ich mich persönlich an den ./lib Ordner halte.

    
Enno Shioji 18.07.2010 19:31
quelle
1

Es gibt launch4j, das, wenn Sie es zum Laufen bringen können, eine Java-Anwendung in eine ausführbare Datei für Ihre Plattform bündelt.

    
bmargulies 18.07.2010 20:14
quelle
1

Wenn Ihr Implementierungsziel RPM-Dateien unterstützt, rate ich Ihnen dringend, das rpm-maven-plugin zu untersuchen. Es ermöglicht Ihnen, Ihre Projektartefakte, einschließlich Abhängigkeiten, einem RPM-Paket zuzuordnen.

Ich habe es mit großem Erfolg für eine mittelgroße Anwendungsbereitstellung verwendet.

    
Robert Munteanu 20.07.2010 07:06
quelle
0

Sehen Sie sich das Appassembler Maven Plugin an. Sie können es auch mit dem Assembly Maven Plugin kombinieren.

Verwenden Sie das Appassembler-Plugin, um eine Reihe von "Programmen" zu generieren, indem Sie ausführbare Namen und Hauptklassen angeben. Sie können auch ein Verzeichnis etc vorgeben und erstellen, in dem Sie Konfigurationsdateien hinzufügen können.

Wenn das Erstellen des Verzeichnisses mit den Start-Skripten und dem Verzeichnis der Binärdateien nicht ausreicht, können Sie das Assembly-Plugin verwenden, um zusätzliche Dateien (zB Ihre Konfigurationsdateien) in das entsprechende Verzeichnis zu kopieren und / oder Ihre Anwendung zu packen in ein Archiv.

    
deterb 03.08.2010 02:00
quelle
0

Sie können Oracle's Ameisen- oder Maven-Skripte verwenden:

Ссылка

Das oben genannte wird nicht nur Ihren Code kompilieren und JAR-Dateien erstellen, sondern auch eine ausführbare Binärdatei (Windows EXE-Datei oder Mac-App-Datei). Es kann auch native Installer erstellen. Darüber hinaus können Sie JVM mit Ihrer Distribution integrieren, sodass die Endbenutzer Java nicht installieren müssen.

    
Saeid Nourian 11.09.2015 13:49
quelle

Tags und Links