Maven install schlägt fehl

Bitte aktiviere JavaScript!
Hi,

ich habe mir ein Maven Projekt angelegt und da mittlerweile auch schon "gut" Code geschrieben.
Jetzt wollte ich mal gucken, ob das Programm auch so läuft wie es soll und wollte es exportieren.
Als erstes habe ich ein mvn build gemacht aus Eclipse heraus, das hat gut funktioniert (die jar, die gebaut wurde, lässt sich nicht ausführen).
Danach habe ich ein Clean gemacht und letzten Endes ein install und da hapert es.

Ich bin ein richtiger Neuling mit Maven (habe bisher nur die die dependencies erweitert in der pom..).
Folgender Fehler taucht auf:
T E S T S
-------------------------------------------------------
java.lang.NoClassDefFoundError: org/junit/runner/notification/RunListener
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.getConstructor(Class.java:1825)
at org.apache.maven.surefire.util.ReflectionUtils.getConstructor(ReflectionUtils.java:76)
at org.apache.maven.surefire.util.ReflectionUtils.instantiateOneArg(ReflectionUtils.java:129)
at org.apache.maven.surefire.booter.SurefireReflector.instantiateProvider(SurefireReflector.java:239)
at org.apache.maven.surefire.booter.ProviderFactory.createProvider(ProviderFactory.java:122)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:81)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.notification.RunListener
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.maven.surefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
... 11 more

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
und weiter unten dann

Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
Ich vermute mal, dass es sich hierbei um meine JUNIT-Tests handelt (die übrigens alle einwandfrei funktionieren). Wieso tritt dieser Fehler auf?
Wenn ich sage, dass er die Tests skippen soll (wie mache ich das?), funktioniert das dann?
Und wie erstelle ich eine ausführbare .jar?

Hoffe mir kann jemand helfen :)
 
JUnit habe ich in der pom drin und als Lib im Projekt, weil er meckerte, dass er JUnit nicht finden kann und so hat es funktioniert.
Allerdings habe ich in den Projekteigenschaften das Häkchen Rechtsclick auf Projekt -> Properties -> Maven
"Resolve dependencies from Workspace projects"
weg gemacht.
 
Ok glaube ich habe den Fehler gefunden, warum Eclipse nicht die Maven Dependency für JUnit übernommen oder erkannt hat.
Das war meine pom vorher
Code:
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

Dann habe ich mir mal ein Tutorial angeguckt und habe daraus einfach
Code:
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
gemacht und jetzt funktioniert es. Zumindest JUnit wird nun erkannt und kann "resolved" werden.
Auch
Code:
mvn install
funktioniert nun einwandfrei.
 
Der Scope war der "Fehler" die Version könntest du trotzdem auf 4.12 haben, wenn du möchtest. Wie auch die Versionsangabe im DependencyManagement block
 
Habe jedoch jetzt ein anderes Problem.
Ich habe eine TreeView.. und dort sind TreeItems drin. Wenn ich ein TreeItem auswähle, wird ein anderes FXML geöffnet und angezeigt.
In Eclipse funktioniert das, in der standalone.jar allerdings nicht.
Mit jar tf meineJar.jar habe ich überprüft, ob auch alle Klassen enthalten sind, und das sind sie...
Hat da jemand schon die gleiche Erfahrung gemacht? Das ist natürlich jetzt sehr ärgerlich ..
 
Code:
FXMLLoader loader = new FXMLLoader();
            loader.setLocation(MainApp.class.getResource("/fxml/uni/StatOverView.fxml"));
            AnchorPane page = (AnchorPane) loader.load();

            // Set module overview into the center of root layout.
            rootLayout.setCenter(page);
So mache ich das, wobei rootLayout mein BorderPane ist.
In Eclipse funktioniert das einwandfrei..
Die anderen FXML werden auch geladen.. :/

Edit: Ich benutze allerdings eine FX LineChart in dieser FXML.. kann das das Problem sein?
Kann ja eigentlich nicht sein oder?
 
Zuletzt bearbeitet:
Das ist der Inhalt meiner .jar Datei:
META-INF/MANIFEST.MF
META-INF/
fxml/
fxml/uni/
fxml/uni/ModuleEditDialog.fxml
fxml/uni/ModulOverview.fxml
fxml/uni/RootLayout.fxml
fxml/uni/StatOverview.fxml
university/
university/io/
university/io/FileSerialization.class
university/io/JReader.class
university/io/JWriter.class
university/model/
university/model/Module.class
university/model/ModuleList.class
university/model/ModuleListizer.class
university/util/
university/util/date/
university/util/date/DateUtil.class
university/util/fx/
university/util/fx/TreeViewHelper.class
university/util/fx/userInfo/
university/util/fx/userInfo/Cancel.class
university/util/module/
university/util/module/ModuleUtil.class
university/view/
university/view/controller/
university/view/controller/ModuleEditDialogController.class
university/view/controller/ModuleOverviewController.class
university/view/controller/RootlayoutController.class
university/view/controller/StatOverviewController.class
university/view/MainApp.class
META-INF/maven/
META-INF/maven/de.own.uni/
META-INF/maven/de.own.uni/MeineOrganisationApp-1.0-SNAPSHOT/
META-INF/maven/de.own.uni/MeineOrganisationApp-1.0-SNAPSHOT/pom.xml
META-INF/maven/de.own.uni/MeineOrganisationApp-1.0-SNAPSHOT/pom.properties
Und es fehlt nichts ..

Ich habe mal
rootLayout.setCenter(null);
hinzugefügt, um zu gucken, ob sich überhaupt was ändert, leider nicht.. normalerweise sollte die FXML verschwinden, doch sie bleibt, aber auch nur wieder in der .jar Datei. (natürlich builde, cleane und installe ich das Ganze wieder).
Ich hab leider wenig Wissen über das Ganze, um zu erraten woran es liegen könnte.
 
Zuletzt bearbeitet:
Wahnsinn, das war es!
Aber jetzt frage ich mich: Wieso funktionierte es in Eclipse? Normalerweise hätte Eclipse doch eine "Location not Set"- "Exception" werfen müssen, oder?
Sachen gibt's... :D

Immer diese triviale Fehler bei denen ich hängen bleibe :rolleyes:
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben