В чем разница между использованием javac и javax.tools.JavaCompiler?
Документация по подключаемым модулям Mavenсостояния:
Плагин компилятора используется для компиляции исходников вашего проекта. Начиная с версии 3.0 компилятором по умолчанию является javax.tools.JavaCompiler (если вы используете Java 1.6) и используется для компиляции исходных кодов Java. Если вы хотите принудительно подключить плагин с помощью javac, вы должны настроить опцию плагинаforceJavacCompilerUse
И действительно, когдаforceJavacCompilerUse
в нашей сборке не указано, есть ошибки сборки, например, когда код ссылается наcom.sun.
пакеты (наследие, мы знаем, что это плохая идея ...)
Каковы другие различия между этими двумя режимами компиляции в целом и с maven? Есть ли какие-то отличия на выходе, которые нужно знать?