# Maven install schlägt fehl



## Kababär (11. Dez 2016)

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)
> ...



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


----------



## thecain (11. Dez 2016)

Hast du junit im pom oder nur in der ide gelinked?


----------



## Kababär (11. Dez 2016)

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.


----------



## Kababär (11. Dez 2016)

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

```
<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

```
<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 
	
	
	
	





```
mvn install
```
 funktioniert nun einwandfrei.


----------



## thecain (11. Dez 2016)

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


----------



## Kababär (11. Dez 2016)

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 ..


----------



## thecain (11. Dez 2016)

der Pfad zur FXML stimmt wahrscheinlich nicht. Wie lädst du das FXML?


----------



## Kababär (11. Dez 2016)

```
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?


----------



## Kababär (12. Dez 2016)

Das ist der Inhalt meiner .jar Datei:


> META-INF/MANIFEST.MF
> META-INF/
> fxml/
> fxml/uni/
> ...



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.


----------



## thecain (12. Dez 2016)

Das v von overview ist einmal gross und einmal klein


----------



## Kababär (12. Dez 2016)

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... 

Immer diese triviale Fehler bei denen ich hängen bleibe


----------

