Maven3からはarchetype作るときに$と{のエスケープがいらない

cynipe/maven-archetypes · GitHubにあるcuke4dukeのarchetypeをつくっていたときに気づいたのだけど、maven3からは$と{をVelocity流儀にのっとったエスケープをする必要がなくなってる。

裏は取っていなかったのだけど、のUsing Velocity cleanly with custom maven archetypesにもあるのでMaven3からはいらないようですね。これでarchetypeがもっと作り易く!

あ、ちなみにこれも前述のarchetypeをつくっていた時に知ったんですが

mvn archetype:create-from-project

と叩くと${project.build.outputDirectory}/archetype(つまりtarget/archetype)にそのプロジェクトを元にしたarchetypeが自動生成されるので、簡単なサンプルを構築してしまえば皆に使ってもらえるarchetypeがサクサク起こせますよ!

で、これも前述の(ry archetypeなプロジェクトに対して

mvn integration-test

とするとtarget配下にarchetype:generateゴールを実行したときの結果を生成してくれるのでいちいちインストールして試さなくてもサクサク確認できます。通常はarfchetypeにインタラクティブに渡すプロパティは、src/test/resources/projects/basic/archetype.propertiesに以下な感じで指定してあげればOKです。

maven-archetypes/cuke4duke-quickstart-archetype/src/test/resources/projects/basic/archetype.properties at master · cynipe/maven-archetypes · GitHub

version=0.1-SNAPSHOT
groupId=archetype.it
artifactId=basic
version=0.0.1-SNAPSHOT
package=archetype.it.basic

そんな訳でみなさんも快適なarchetypeライフを!

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集


Apache Maven 2.0入門 Java・オープンソース・ビルドツール

Apache Maven 2.0入門 Java・オープンソース・ビルドツール