Eclipse Maven package mit dependencies

razr

Mitglied
Hi,

aktuell versuche ich ein Maven2-Projekt, das ich erstellt habe, zu einem "Standalone"-Jar zu machen.

Ich habe dort aber einige Dependencies genutzt (hsqldb-2.2.6, junit4.9, log4j-1.2.14). Wenn ich das nun zu einer JAR exportier (maven: clean, comnpile, package) und dann versuche auszuführen bekomme ich folgenden Fehler:

Code:
$ java -jar target/MEINESOFTWARE.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/xml/DOMConfigurator
        at Log.Log.<init>(Log.java:39)
        at Log.Log.getLog(Log.java:154)
        at Persistence.Persistence.<init>(Persistence.java:50)
        at Persistence.Persistence.getPersistence(Persistence.java:284)
        at Start.main(Start.java:28)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.xml.DOMConfigurator
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 5 more

Es sieht für mich so aus, als würden die Dependencies nicht mit gepackt... Im JAR-File ist da auch nichts drin...

Kann mir da jemand helfen?

Gruß raz0r
 
N

nillehammer

Gast
Im Gegensatz zu Ears oder Wars unterstützt das Jar-Format es nicht, andere Jars mit reinzupacken. Darüber stolpert man gerne, wenn man vorher nur mit ears oder wars gearbeitet hat. Es gibt für dieses Problem zwei mögliche Lösungen:
  1. Entpacke alle dependencies und schmeiß alles in einem Riesen-Jar zusammen.
  2. Richte Dir eine Ordnerstruktur ein (bspw Programmverzeichnis mit Unterverzeichnis "lib") und liefere Deine anwendung als Zip-Datei aus.
Für beide Varianten kann man das Assembly-Plugin konfigurieren. Infos gibts hier: Maven Assembly Plugin - Introduction
 

kama

Top Contributor
Hallo,

um ein Jar zu erhalten, dass alle Abhängigkeiten enthält gibt es das Maven Shade Plugin, dass erzeugt ein sog. ueber-jar ...

BTW: Warum rufst Du "maven: clean, comnpile, package" auf?

Wenn Du hier
Code:
mvn clean package
Aufrufst wird auch compiliert...Ist Dir der Life-Cycle von Maven ein Begriff ?

Gruß
Karl Heinz Marbaise
 

razr

Mitglied
Ersteinmal vielen Dank für die Anleitungen und Hilfen.

Ich habe jetzt folgendes meiner pom.xml hinzugefügt:

Code:
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version><!--$NO-MVN-MAN-VER$-->
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
            <manifest>
              <mainClass>GUI.Main</mainClass>
            </manifest>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

Jetzt packt er mir das Programm nahezu richtig zusammen.

Ich habe jetzt einzig das Problem, dass er mir einige Ordner nicht mit packt. Ich habe einen Ordner, der die Sprachdateien des Projekts und einen, der die Bilder des UI enthält.

Ich habe schon versucht diese dem classpath mit hinzuzufügen, aber auch das bringt nichts (hab ich mir aber auch fast gedacht). Wenn ich die Ordner von Hand einfüge funktioniert das. Das sollte ja aber nicht der richtige Weg sein, oder?

@kama ja, ist mir ein Begriff, nur da das nicht funktioniert hat, habe ich gedacht, ich probier erstmal alles was vieleicht Sinn ergeben könnte ;)
 

kama

Top Contributor
Hallo,
Code:
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version><!--$NO-MVN-MAN-VER$-->
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>...
Ja assembly plugin ist auch eine Möglickeit..

Ich habe jetzt einzig das Problem, dass er mir einige Ordner nicht mit packt. Ich habe einen Ordner, der die Sprachdateien des Projekts und einen, der die Bilder des UI enthält.
Und wo liegen die Dateien ? src/main/resources ? .. ?Warscheinlich nicht...

@kama ja, ist mir ein Begriff, nur da das nicht funktioniert hat, habe ich gedacht, ich probier erstmal alles was vieleicht Sinn ergeben könnte ;)
Liegt aber einfach daran, dass Du kein entsprechendes Plugin in den Life-Cycle gepackt hast ...

Gruß
Karl Heinz Marbaise
 

razr

Mitglied
ich habe jetzt (fast) alles versucht... ich hab sie im Ordner src/main/resources gehabt, im Ordner src/main/resources/img, hab diese dem classpath hinzugefügt etc.

ich rufe die Bilder per

Java:
logo = new JLabel(new ImageIcon("logo.png"));

Das Einzige, was funktionierte war, wenn ich die mit

Java:
logo = new JLabel(new ImageIcon("src/main/resources/img/logo.png"));

abgerufen habe, wurden sie beim start direkt aus eclipse angezeigt. Nach dem package waren sie zwar in dem jar-file, wurden aber nicht angezeigt.

Was mache ich denn jetzt noch falsch?
 

kama

Top Contributor
Hi,

wenn Du die Dateien in Maven unter src/main/resources legst dann werden die in das JAR eingepackt und dann dort per:

Java:
this.getClass().getResource("/img/logo.png")
or
this.getClass().getResourceAsStream("/img/logo.png")
zu erreichen.
Das klappt dann sowohl von Eclipse aus als auch im gepackten Programm...

Gruß
Karl Heinz Marbaise
 

razr

Mitglied
Vielen vielen Dank kama !!

Da ist man schon so in dem Trott, dass man doch glatt in allen Anleitungen den führenden Slash übersieht ... Und ich wunder mich, dass ich so komische Fehlermeldungen bekomme -.-

Vielen Dank für die sehr gute und schnelle Hilfe ;)

Gruß razr
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H maven-javadoc-plugin: package does not exist IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
doopexxx Add an maven project to an existing maven project IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 23
MiMa Netbeans zu IntelliJ mit Maven konvertieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
MiMa IntelliJ Maven Projekt erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
Y IDEA IntelliJ Warum findet IntelliJ die maven property nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
Robertop Maven Warnung "'version' contains an expression but should be a constant" in Eclipse verstecken IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
O NetBeans Java Projekt OHNE Maven erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
O NetBeans Java Projekt OHNE Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
P Maven für Intellij IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
mrBrown IntelliJ 2020.1 - Maven Projekte nicht ausführbar IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
A Wie sind Multi-POM Maven Projects zu verwalten/releasen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 12
J Maven in Gradle builden? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
D Jenkins/Gradle maven-publish Problem IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
U Ich kann ein Plugin anhand von Maven nicht builden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
C Ändern der Hauptklasse und dependencys in maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
C maven startet jetty, netbeans "run" startet glassfish IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
J Eclipse Nach Maven Einstellung -> Ordner /target im Arbeitsverzeichnis IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
D Gradle - DSL und Repositories von Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
K Eclipse Seltsames Maven Compiler Verhalten mit OpenCV IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
K Netbeans + Maven: default pom Inhalt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
K Maven + GWT (+ Eclipse)? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
E Maven-Installation für Intellij IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M Eclipse import eines maven projects "missing artifact" IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
D Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
N Maven dependencies Informationen finden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
F [Maven] cannot find plugins IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
J Eclipse Eclipse mit Maven mit Abhängigkeiten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
L Eclipse Eclipse - Projekte "mischen" Dynamisches Web Projekt + Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
G Maven - lokales Repository erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
D NetBeans Maven Projekt in Netbeans => WEKA wirft (java.lang.OutOfMemoryError: Java heap space) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
thet1983 Eclipse Eclipse - Maven - Wildfly - archetype:generate IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
G eclipse und Webprojekte mit Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
D Eclipse Eclipse deployment assmebly + Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
P Eclipse Maven Support IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
A IDEA IntelliJ IntelliJ Maven oder Webprojekt, kann keine normalen Java Klassen erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
Tarrew Problem mit Maven und der Erkennung von generierten Antlr Files. IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
M [Maven] Depencies mit in jar übernehmen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
N Eclipse Maven , Javafx , SceneBuilder IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
H Maven realer Classpath? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
E Maven - *.jars landen nicht im lokalen Repository IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
I Maven, Eclipse, building workspace loop IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
B Versionierung mit Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
DEvent [maven] property als parameter IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
S Eclipse Java + Shellscript mit Maven und Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
M Eclipse Maven/Eclipse ClassLoader Reihenfolge IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
Gregorrr Eclipse Best Practice: Multi-Projekt mit Eclipse + EGit (Git) + m2e (Maven) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
B Maven - Angeben welche Klassen/Packes für build benutzen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
J Eclipse Checkout/Import Maven Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
C Eclipse Verständnisfrage Eclipse+Maven+Resources IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
C Eclipse Verständnisfrage Eclipse+Maven+Dependencies IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
P Eclipse Maven integration IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
K Maven: Reporting zu einer bestimmten Revision IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
S Maven und Native-Libs IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
T Eclipse Maven-Plugin IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S Maven: Abhängigkeiten + target in [b]eine[/b] Jar IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
G NetBeans Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
MQue Maven und SVN IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
S Maven / Javadoc als jar deployen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
Kessi Maven assembly vergisst eigene Klassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
D Einzelnen Unit-Test mit Maven ausführen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
J Ant-Tasks in Maven einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 13
M MyLyn und Maven installieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 12
D Maven vs. Ivy IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
J Konfigurationsdateien und Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
F Maven plugin für Eclipse: tld dependencies in jars IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M Maven 2, XDoclet ejbdoclet und Java 1.5 IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
E Maven mit WSDL2Java IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
Y Maven und JUnit IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
Y Maven und myEclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
B Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
N Eclipse erzeugt plötzlich keine (default package) mehr IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 24
S Eclipse package explorer: Ansicht als Baum IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
H symbol rot-x aus Package explorer entfernen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
H Unterdrücken aller checkstyle Warnungen für ein bestimmten Package IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
A Bibliothek in package nicht sichtbar IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
G Eclipse Package Explorer IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
B Eclipse Klassen nur im Default Package verwalten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
M NetBeans Eigenes package hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
S NetBeans Serializable Class ohne package IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
P Test- und Produktivklassen bei gleichem Packagenamen tatsächlich in gleichem Package? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
J NetBeans Package Struktur stimmt nicht! IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
D Eclipse Package in von Plugin erstellen lassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
F Eclipse "Package Explorer" refreshen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
S NetBeans class, jar, package. Wie am besten machen bei Applet mit Web-Projekt? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
B Eclipse errors/warnings im (Package) Explorer IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 21
F Eclipse testsuite package starten mit testklassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
T Eclipse Plugin Package IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
G Eclipse/NetBeans package IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
E Eclipse - TODO in package explorer IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
muddin externe jar in Eclipse nur im default package? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
X Package umbennen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
F Eclipse: package-explorer soll nicht alle packages anzeigen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
J [NetBeans] Fehler mit einem eingebundenen Package IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 13
F Eclipse Warnings ausschalten für ein Package? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
D NetBeans findet Package nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
G Eclipse: Modifizierter Package Explorer (mehrere Workspaces) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
G Eclipse: Package Explorer unuebersichtlich! Libraries! IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
P Eclipse - default package IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
O File(s)/Package(s) zu Archiv HINZUFÜGEN IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
Kr0e Eclipse Tool für Jars - Automatisch Dependencies einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 12

Ähnliche Java Themen

Neue Themen


Oben