しおしお

IntelliJ IDEAのことなんかを書いてます

DomaをIntelliJ&Gradleの組み合わせで使った場合にIntelliJでビルドできるようにする

DomaIntelliJ&Gradleで使ったば場合にIntelliJ側でもビルドできるようにする手順です。

バージョンなど

Gradle
task wrapper(type: Wrapper) {
  gradleVersion = '3.3'
}
IntelliJ IDEA

下のバージョンで確認をしました。

  • 2016.3.2
  • 2017.1(EAP)
プロジェク構成

下のプロジェクト構成で確認を行いました

  • シングルプロジェクト
  • マルチプロジェクト(rootプロジェクトのsubprojects内に設定を行っています)

Domaのドキュメントを参考にbuild.gradleを作る

ビルド — Doma 2.0 ドキュメントを参考にbuild.gradleを作りましょう。
これで、Gradleでビルドした場合にSQLファイルをうまく参照できるようになります。

IntelliJでビルドできるようにするための設定を追加する

build.gradleに以下の設定を追加します

// ideaプラグインを追加
apply plugin: 'idea'

// モジュールの出力先ディレクトリをcompileJava.destinationDirに変更
idea.module.outputDir = compileJava.destinationDir

IntelliJでビルドしてみると

SQLファイルの出力先がresourcesからclassesになりちゃんとビルドできるようになりました。

ちなみに、上の設定を行わずにビルドした場合はこんな感じに出力されてビルドが失敗します。

inheritOutputDirsを有効しないと動かない場合がある

inheritOutputDirsを有効(true)にしないと、うまく動かないとの指摘をいただきました。
上に書いたバージョンの組み合わせでは、この設定がなくても動いたのですがバージョンの組み合わせによってはこの設定が必要なので、以下の設定をbuild.gradleに追加してあげましょう。

  idea.module.inheritOutputDirs = true



おわり。