Eclipse verwendet seinen eigenen Compiler (ECJ), um Java-Code zu kompilieren. Das Debuggen eines Programms, das mit Eclipse kompiliert wird, ist einfacher, da einfache Codeänderungen sofort angewendet werden können (durch den Hot-Code-Austausch).Verwendung von Eclipse Java Compiler (ecj) in Maven-Builds
Maven hingegen verwendet (standardmäßig) Oracle JDK, das einen unterschiedlichen Bytecode generiert, der den Austausch von HotCodes in einer Eclipse-Debugsitzung verhindert.
Also ich möchte Eclipse ECJ Compiler mit meinem Maven Build verwenden, wenn ich das Programm debuggen möchte. Ein bequemer Weg für mich wäre ein "ecj" Profil sein:
Compile
$ mvn package
Compile Snapshot mit aktiviertem Hot Code Ersatz
$ mvn -P ecj package
Auch das Profil freigeben Aktivierung kann in settings.xml
oder sogar Eclipse-Projekteigenschaften angegeben werden.
Meine Fragen sind:
- Ist dies der richtige Weg zu gehen?
- Wie kann das konfiguriert werden?
- Kann Maven Toolchain dafür verwendet werden?
Funktioniert wie ein Charme! Vielen Dank! –
Gut, es funktioniert für Sie. Nur für den Fall: Ich konnte nicht finden, wo Plexus-Compiler-Eclipse beibehalten wird und als Konsequenz bin ich mir nicht sicher, ob sie Integration mit den neuesten Versionen von ecj bieten (das letzte, was ich finden konnte, war die Integration von ecj ab 201440604). Im Falle von Problemen mit dem obigen Ansatz, die JDT FAQ hat auch ein paar Hinweise (tycho-compiler-jdt für die Aufgabe zu empfehlen): https://wiki.eclipse.org/JDT/FAQ#Can_I_use_JDT_outside_Eclipse_to_compile_Java_code.3F –