Использование плагина delombok maven помещает все мои файлы в 'target/generated-sources/delombok'.
Когда я пытаюсь запустить maven-компилятор, он жалуется на дублирующие классы, поэтому я устанавливаю addOutputDirectory равным
this question recommends.
Проблема в том, что файлы delombok'ed игнорируются, поэтому компилятор жалуется на отсутствующие методы.Как я могу получить Maven для компиляции из измененного кода (delombok'd), а не из src/main/java
Как я могу сообщить плагину maven компилятора игнорировать каталог «src/main/java» по умолчанию, а вместо этого использовать компиляцию с целевым/сгенерированным источником/delombok?
Запуск MVN компилировать -X производит следующий вывод, когда компилятор работает:
[DEBUG] (f) compileSourceRoots = [C:\Users\Jamey.Holden\workspace\Apollo\Website\src\main\java, C:\Users\Jamey.Holden\workspace\Apollo\Website\target\generated-sources\java]
[DEBUG] (f) compilerId = javac
[DEBUG] (f) debug = true
[DEBUG] (f) encoding = UTF-8
[DEBUG] (f) failOnError = true
[DEBUG] (f) forceJavacCompilerUse = false
[DEBUG] (f) fork = false
[DEBUG] (f) generatedSourcesDirectory = C:\Users\Jamey.Holden\workspace\Apollo\Website\target\generated-sources\annotations
[DEBUG] (f) mojoExecution = org.apache.maven.plugins:maven-compiler-plugin:3.0:compile {execution: default-compile}
[DEBUG] (f) optimize = false
[DEBUG] (f) outputDirectory = C:\Users\Jamey.Holden\workspace\Apollo\Website\target\classes
[DEBUG] (f) proc = none
[DEBUG] (f) projectArtifact = ic.apollo:website:war:0.1
[DEBUG] (f) showDeprecation = false
[DEBUG] (f) showWarnings = false
[DEBUG] (f) skipMultiThreadWarning = false
[DEBUG] (f) source = 1.6
[DEBUG] (f) staleMillis = 0
[DEBUG] (f) target = 1.6
[DEBUG] (f) verbose = false
[DEBUG] (f) mavenSession = [email protected]
[DEBUG] (f) session = [email protected]
Затем дальше вниз, где параметры командной строки печатаются я могу видеть, что -sourcepath аргумент: -sourcepath C:\Users\Jamey.Holden\workspace\Apollo\Website\src\main\java;C:\Users\Jamey.Holden\workspace\Apollo\Website\target\generated-sources\java;
Ни один из них не каталог delombok, поэтому достаточно справедливо, что он не может найти все геттеры и сеттеры, когда он пытается скомпилировать.
ОБНОВЛЕНИЕ Я думаю, что я дошел до сути проблемы. Я устанавливал proc = none, чтобы предотвратить обработку аннотаций, потому что я использую queryDSL для генерации мета-сущностей, и когда это не было сделано, чтобы избежать обработки аннотаций, у компилятора была обнаружена ошибка с повторяющимися объектами. Удаление proc = none и обработчик аннотации querydsl решил проблему. Теперь я просто хочу снова запустить m2e.
Я принимая это, потому что это привело для меня решение моей проблемы было то, что я установил proc = нет, спасибо! – Jamey
Для людей из будущего, которые столкнутся с ошибкой с кодировкой, мне пришлось добавить свойство (свойство tag) ' UTF-8 ' to 'pom.xml'. –
Jezor