LoginSignup
3
1

More than 5 years have passed since last update.

giter8でScalaのプロジェクトテンプレートを作りたい

Last updated at Posted at 2015-05-30

giter8でScalaのプロジェクトテンプレートを作る方法です。

リポジトリ名

GitHub上でホスティングする場合は、<username>/<template-name>または<username>/<template-name>.g8の形式でリポジトリを作成します。接尾辞の.g8は以前は必須でしたが今は無くてもかまいません。例えば、suin/play-scalaまたはsuin/play-scala.g8という名前でリポジトリを作っておくと、ユーザはg8 suin/play-scalaでプロジェクトを生成することができます。

基本的なファイル構成

src/main/g8の中身がテンプレートになる。

github.com/username/template-name.g8
└── src
    └── main
        └── g8
            ├── build.sbt
            ├── default.properties ... g8の変数定義など
            ├── project
           ...

giter8の設定ファイル

default.propertiesはgiter8の設定と、プロジェクト生成時に置き換える変数名とそのデフォルト値を設定します。よくあるパターンは次のような設定値ですが、好きなだけ変数を用意してかまいません。

default.properties
name=Play Scala
organization=com.example
version=0.1.0-SNAPSHOT
verbatim=activator *.js *.ts *.jar *.xml *.png

verbatimはテンプレート処理しないファイル名を指定します。ファイルに$が書いてあると、giter8は置換しようと試みるので、jquery.min.jsなど$が書かれているファイルはここで除外するようにしておきます。もし次のようなエラーが出る場合は、$を含んでいるファイルが処理されようとして失敗しているので、除外すべきファイルを確認する必要があります。(現在のg8ではどのファイルでエラーになったのか教えてくれないので、出ないので当てずっぽうで探す他ありません…)

problem parsing template 'anonymous'
line 23:1: expecting '$', found '<EOF>'

ローカルでの開発方法

giter8は実はローカルのファイルからプロジェクトを生成することができます。file://でパスを指定すると、そこにあるテンプレートでプロジェクト生成を実行してくれます。これを活用したほうがGitHubにpushしたりする手間がないので、手軽にテンプレートを開発できます。

g8 file:///path/to/template.g8

置換のしくみ

置換のしくみは、設定ファイルdefault.propertiesで宣言した変数名を単純に置き換えるというものになっています。ソースファイル中の$で囲まれた文字が置換されます。また、ファイル名に含まれる$変数名$も置換されます。

3
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1