2017-06-06 7 views
5

Ich verwende Maven 3.5.0 und JDK 9 Build 171. Als ich versuchte, mein Projekt zu kompilieren bekam ich eine Ausnahme:Maven 3.5 Problem mit JDK 9

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.6.1:compile (default-compile) on project admin: Fatal error compiling: ja-va.lang.NoClassDefFoundError: com/sun/tools/javac/file/BaseFileObject: com.sun.tools.javac.file.BaseFileObject 

Ich habe vorgeschlagen Fahnen zu dem MAVEN_OPTS aber ohne Erfolg:

--add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED 

Irgendwelche Vorschläge?

+2

com.sun.tools Zugriff nicht öffentlich mehr siehe Modulsystem ... – khmarbaise

+0

Hilft hier der '--permit-illegal-access' oder die neuere Version von' 'illegal-access = warn'? – nullpointer

+0

Kannst du 'mvn' mit' -X' Option für Debug-Check ausführen, was ist die Version der Module, die vom mvn Compiler-Plugin verwendet werden: 'org.codehaus.plexus: plexus-compiler-api', ' org .codehaus.plexus: Plexus-Compiler-Manager', 'org.codehaus.plexus: Plexus-Compiler-javac: jar'. Die Version sollte 2.8.1 sein. –

Antwort

4

Mein Projekt hatte eine Abhängigkeit von der Lombok-Bibliothek. Aktualisieren der pom.xml auf Version 1.16.18 erlaubt den Build mit Warnungen abgeschlossen:

WARNING: An illegal reflective access operation has occurred 
WARNING: Illegal reflective access by lombok.javac.apt.LombokProcessor to field com.sun.tools.javac.processing.JavacProcessingEnvironment.discoveredProcs 
WARNING: Please consider reporting this to the maintainers of lombok.javac.apt.LombokProcessor 
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations 
WARNING: All illegal access operations will be denied in a future release 
1

Maven Compiler-Plugin in der Version 3.6.1 nicht geeignet ist. Sie sollten mindestens Version 3.6.2 verwenden.