つまずく箇所が多かったので、健忘録です。
※ IntelliJ IDEA CE 2017.3 で確認
新規プロジェクトの作成
Gradle のプロジェクトを作成。
ルートプロジェクトなので "追加のライブラリーおよびフレームワーク" から全てのチェックを外す。
shared プロジェクト(モジュール)の追加
IntelliJ の "プロジェクトビュー" を右クリックし、コンテクストメニューから [新規] → [モジュール] を選択し、shared モジュールを追加する。
こちらは "追加のライブラリーおよびフレームワーク" の [Java] にチェックを付ける
"プロジェクトビュー" からではなく、"プロジェクト構造" ウインドウから追加するのはダメっぽい。 (なぜか、"次へモジュールとして追加" 欄へ親プロジェクトが指定できない) |
app モジュールの追加
続けて共通機能を利用する側のモジュールを同様の手順で追加する。
追加が完了したら "build.gradle" ファイルの dependecies
に shared モジュールを追加し、適当な機能を実装する。
続けて "実行/デバッグ構成" を設定し、実行できることを確認する。
JAR ファイルの生成
デフォルトの状態だと Gradle の出力ディレクトリ設定と、IntelliJ の設定が異なるため正常な JAR ファイルが生成されない。
参考: stack overfloe - Building with Intellij 2017.2 /out directory duplicates files in /build directory |
このため shared モジュールと app モジュールの "build.gradle" ファイルで、明示的に出力ディレクトリを指定する。
続けて "プロジェクト構造" ウインドウの "プロジェクト設定" 内の [成果物] から [+] → [JAR] → [依存関係をもつモジュールから...] を選択して成果物を追加する。
モジュールとメイン・クラスを指定する際に、マニュフェストファイルのディレクトリを java
から resources
に変更する。