はじめに
タイトル通り、Kotlinでプロジェクトテンプレート作る時の注意点。
プロジェクトテンプレートってなに?って人は↓を参照
http://qiita.com/kgmyshin/items/9c803a21451e603531f0
この記事は、上記のページを読んで最低限のプロジェクトテンプレートの作り方がわかった前提で書いてます
KotlinSrcのパスを追加する
結論から言えば、以下の2ファイルを修正すれば良い
globals.xml.ftl
<?xml version="1.0"?>
<globals>
~~省略~~
<#include "../common/common_globals.xml.ftl" />
+ <global id="srcOutKotlin" value="app/src/main/kotlin/${slashedPackageName(packageName)}" />
</globals>
- globals.xml.ftlの末尾にsrcOutKotlinの設定を追加。パスはKotlinのリソースパッケージを指定する
recipe.xml.ftl
<?xml version="1.0"?>
<recipe>
- <instantiate from="root/src/app_package/SampleClass.java.ftl"
- to="${escapeXmlAttribute(srcOut)}/${sampleClassName}.java" />
+ <instantiate from="root/src/app_package/SampleClass.kt.ftl"
+ to="${escapeXmlAttribute(srcOutKotlin)}/${sampleClassName}.kt" />
</recipe>
- 拡張子を
java
からkt
へ変更する -
escapeXmlAttribute
の引数をsrcOut
からsrcOutKotlin
に変更する
もともとsrcOutの指定は../common/common_globals.xml.ftl
で行われているが、こいつはapp/src/main/java/~~~
を指してしまう。
なので新たにKotlin用のパッケージの場所を指定してあげばOKというからくり。
なお、この修正をしなくても正常に生成はされるが、出力が常にapp/src/main/java/~~以下になってしまい、JavaとKotlinが混在するというカオスな状況が生まれる。避けていきたい