delombok maven プラグインを使用すると、すべてのファイルが「target/generated-sources/delombok」に配置されます。Mavenコンパイラを実行しようとすると、クラスの重複について不平を言うので、この質問が推奨するようにaddOutputDirectoryをfalseに設定します。現在の問題は、deombok されたファイルが無視されるため、コンパイラがメソッドの欠落について不平を言うことです。
デフォルトの 'src/main/java' ディレクトリを無視し、代わりに 'target/generated-sources/delombok' ディレクトリを使用してコンパイルするように Maven コンパイラ プラグインに指示するにはどうすればよいですか?
mvn compile -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 = org.apache.maven.execution.MavenSession@393e6226
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@393e6226
次に、コマンド ライン オプションが出力されている場所のさらに下に、-sourcepath 引数が次-sourcepath C:\Users\Jamey.Holden\workspace\Apollo\Website\src\main\java;C:\Users\Jamey.Holden\workspace\Apollo\Website\target\generated-sources\java;
のように表示されていることがわかります。
更新 私は問題の根底に到達していると思います。queryDSL を使用してメタエンティティを生成しているため、注釈処理を防ぐために proc=none を設定していましたが、これが注釈処理を回避するように設定されていない場合、コンパイラでエンティティが重複して検出されたというエラーが発生しました。proc=none と querydsl 注釈プロセッサを削除すると、問題が解決しました。これで、m2e を再び動作させることができました。