いつもGradleプロジェクトのセットアップに難儀しているので、プロジェクトテンプレートの利用を検討しました。
テンプレート作成時
作成したテンプレートは、私の環境では /Users/{USER}/Library/Application Support/JetBrains/IdeaIC2020.1/projectTemplates
にありました。例えば、 excel
という名前のテンプレートは excel.zip
として保存されています。
IntelliJの新規プロジェクトメニューは、テンプレートが一つも保存されていない状態だと表示されないようです。
IntelliJはprojectTemplateのZIPファイルを再帰的に探索し、そこで見つかったものをプロジェクトテンプレートの候補として表示するようです。試しにzipファイルを消したらプロジェクトテンプレートも消えました。また、projectTemplate
内に適当なフォルダを作ってそこにZIPを移動してもテンプレートとして表示されるようです。
ただ、 projectTemplate
フォルダを直接編集するとプロジェクトの作成時に失敗するようになるかもしれません。
2020-04-30 追記: ソースコードのファイルがひとつもないモジュールを含むプロジェクトをテンプレート化すると、プロジェクト作成時に失敗します。IntelliJのバグと思われます。
テンプレート使用時
User-defined から利用したいプロジェクトを選択します。
作成失敗時、特に画面上にエラーは表示されないので気づきづらいのですが、 idea.logを見るとしっかり表示されています。
idea.log は私の環境だと/Users/{USER}/Library/Logs/JetBrains/IdeaIC2020.1/idea.log
です。
作成されたプロジェクトは、元のテンプレートの値が置換される箇所とそうでない箇所があるようです。例えばMakefile内のアプリケーション名は置換されませんでした。
2020-05-03 追記:
gradleプロジェクトをテンプレート化すると、 ./gradlew
でコメント行がエスケープされる上にパーミッションが初期化されて実行できなくなります。直せばいいとはいえ、うーん。
まとめ
細かいバグはありそうですが、都度Gradleの設定をコピらなくていいのは嬉しいので活用していきたいですね。