GradleのプロジェクトでIntellij IDEAで使われるコンパイラの引数をbuild.gradleに設定したい

その要求に答えてくれるのがこの JetBrainsが出している、gradle-idea-ext-pluginです。

idea {
  project {
    settings {
      compiler {
        javac {
          javacAdditionalOptions "-Amapstruct.defaultComponentModel=spring -Amapstruct.unmappedTargetPolicy=ERROR"
        }
      }
    }
  }
}

こんな感じで設定できます。 この例は MapStruct を使うときに設定した例です。

ちなみに、生成したソースを参照するために以下の設定を追加しました。

idea {
  module {
    sourceDirs += project.file('out/production/classes/generated')
    generatedSourceDirs += project.file('out/production/classes/generated')
    testSourceDirs += project.file('out/production/classes/generated_tests')
  }
}

参考: 逆引きマニュアル: IntelliJ IDEAでAnnotation Processorsを使用する方法 | ikemo memo

なんか動いてるっぽい。