Java Compiler for MPS modules with Java facet
A lot has been changed in approach to Java compilation of MPS modules. We started this change to address one of our top-voted issues, Annotation Processing support (https://youtrack.jetbrains.com/issue/MPS-27653). We switched MPS Java Compiler infrastructure to utilise
javax.tools.JavaCompiler set of APIs. Now, MPS can use any compiler that implements this standard API, as of MPS 2021.1 we run with a default compiler configured for the API, with an option to use Eclipse Java Compiler, if present. When ECJ libraries are in classpath, you may switch MPS to use Eclipse Java Compiler with '
mps.compiler.java=ecj' as the system property (e.g. by editing 'mps.vmpoptions'). In case you experience unrecoverable issues using new compiler infrastructure, there's also an option to switch back to legacy mechanism of direct ECJ API use, put 'ecjlegacy' as the value for '
mps.compiler.java' system property.