読者です 読者をやめる 読者になる 読者になる

IntelliJ IDEAでGradleプロジェクトをインポートしたときにクラスパスが反映されない問題へのワークアラウンド

Gradle IntelliJ IDEA

GradleでSpring BootやらLombokやらを組み合わせたマルチプロジェクトを作っていて、なぜかIntelliJ IDEA側にclasspathがうまいこと反映されない問題が生じていた(Gradle上でのビルドは通るが、IntelliJ IDEA上ではコンパイルエラーと出る)。

都度、IDEからadd classpathをすれば動いてはいたのだけど、ビルドスクリプトを弄るたびにclasspathがぶっ壊れて、手動操作が必要になるのはだるいので、解決策を探して色々試したところ、以下で行けた。

// IntelliJ IDEA用のワークアラウンド
// dependencies編集後にIntelliJ IDEA上のみでコンパイルエラーが生じる場合は、providedを追記してください
apply plugin: 'idea'

configurations {
    provided
}

dependencies {
    provided "org.projectlombok:lombok:1.16.10"
    provided "org.slf4j:slf4j-api:1.7.21"
    provided "org.springframework:spring-beans:4.3.3.RELEASE"
    provided "org.springframework:spring-context:4.3.3.RELEASE"
}

idea {
    module {
        scopes.PROVIDED.plus += [configurations.provided]
    }
}

参考ページ