つまずく箇所が多かったので、健忘録です。
※ 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 に変更する。




