# Eclipse M2 + Binary Folder



## byte (29. Okt 2009)

Hi,

wenn man mit Eclipse ein Java Projekt erstellt und dann mit M2 den Maven2 Support für das Projekt aktivierst, dann wird automatisch das Verzeichnis für die Class-Files von bin auf target/classes umgestellt. Das heisst, sowohl Eclipse als auch Maven kompilieren in das gleiche Verzeichnis. 

Die Testklassen aus src/test/java werden allerdings von Maven nicht in target/classes kompiliert sondern in target/test-classes. Das hat zur Folge, dass Eclipse gelegentlich bei mir Compilerfehler in den Testklassen anzeigt. Ich vermute, dass es daran liegt, dass die Testklassen in target/classes nicht gefunden werden. Die Compilerfehler verschwinden wieder, wenn man in Eclipse ein Clean macht.

Kennt jemand dieses Problem und weiss, wie man es lösen kann? Das nervt nämlich auf Dauer. 

TIA byte


----------



## byte (29. Okt 2009)

Meine Vermutung war nicht ganz korrekt. Wenn ich mit Eclipse ein Clean mache, dann wird src/main/java nach target/classes kompiliert und src/test/java nach target/classes-test. Damit funktioniert alles.

Zum Testen meiner Anwendung benutze ich aber ein Goal "clean tomcat", um das Server Projekt in einem Embedded Tomcat zu starten. Dabei werden nur die Klassen aus src/main/java kompiliert und nicht die Tests. Daran stört sich Eclipse wohl gelegentlich.


----------



## byte (29. Okt 2009)

Hab jetzt mal versucht, das Goal "clean test-compile tomcat:run" zu benutzen, aber dabei werden nur die Test-Resources nach target/test-classes geschoben, aber keine Class-Files.


----------



## maki (29. Okt 2009)

> Zum Testen meiner Anwendung benutze ich aber ein Goal "clean tomcat",


Wie genau machst du das denn?
Wichtig beim Maven2 ist der Lifecycle, wenn du versuchst auf ressourcen zuzugreifen bevor diese erstellt sind (zB. .class), gibt es natürlich Fehler, das hat etwas mit der Phase zu tun.


----------



## byte (29. Okt 2009)

Ich benutze den Eclipse Run Manager, also den Build-In Support von M2, um die Maven Goals direkt aus Eclipse auszuführen.

Ich hab jetzt aber den Fehler gefunden: Ich hatte dort "Skip Tests" aktiviert. Wenn ich das wegmache und das Goal "clean test-compile tomcat:run" ausführe, dann werden sowohl target/classes als auch target/test-classes gefüllt.

Somit dürfte Eclipse nix mehr zu meckern haben. Mal gucken, obs funktioniert, denn das Problem mit den Compilerfehlern trat nur sporadisch auf.


----------

