●Maven2のarchetypeで独自プロジェクトを作ってjettyで起動させてみる
Maven2でarchetypeの独自プロジェクトを作ってみました。
やりたい事は、archetype:createで独自のプロジェクトを自動で作って、jettyで起動させるというところまでです。
サンプル
http://wakasa.org/uploads/sample/mvnarchetypesample.zip
1で作ったものをそのままいれてるので、いらないソースがあったりしますがそれは大目に見てください。
これらはあくまでサンプルで作ったので何か問題が発生したりするかもしれませんので、それは自己責任でお願いします。
1.基本のテンプレートを作る
mvn archetype:create -DgroupId=org.wakasa -DartifactId=testsample -Dversion=0.1 -DarchetypeArtifactId=maven-archetype-archetype
このコマンドをたたくと、今いるフォルダにtestsampleというフォルダができてそこに基本のテンプレートができます。
※参考
[Maven2 Plugin]Archetype -- 独自の archetype を作成する 其ノ壱
http://d.hatena.ne.jp/waman/20071107/1194388042
2.インストールされるプログラムを配置する
src/main/resources/archetype-resources/配下がインストールされるデータになるので、ここを変更する。 pom.xmlなどもそのまま入る。 ただし、ここ以下はテンプレートのファイル扱いなので${artifactId}など書くと、6のアプリケーション作成時で設定した値が入る。 これはJavaのプログラムファイルにも適応されるので、例えばパッケージ名が package org.wakasa.test; というものにしたい場合は package ${packageName}.test; と書き換える必要があります。 こうしないと、5で指定したパッケージに展開された時にフォルダ階層との不整合が発生します。 なので、archetype-resources以下で動作するものを作って、テキストエディタなどで一気に置換するという方法が良いと思います。
3.インストールするファイルの設定をする
src/main/resources/META-INF/maven/archetype.xmlのファイルを編集します。 sources - ソースの一覧 resources - リソースの一覧 testSources - テスト用ソースの一覧 testResources - テストで使用するリソースの一覧 siteResources - 実行時のsiteで使われるリソースの一覧
で、2で書いた通りに各ファイルはあくまでテンプレートの扱いのため、画像などを一緒に登録しようとすると無理やり開いて置き換えようとするのでそれを防止させるのには
filtered="false"
をつけると、スキップしてくれます。
※参考
[Maven2 Plugin]Archetype -- 独自の archetype を作成する 其ノ弐
http://d.hatena.ne.jp/waman/20071107/1194396903
4.jettyのプラグインが動くようにする
入れたあとにjettyを起動するように設定を追加しておきたいので
src/main/resources/archetype-resources/pom.xml
を開いてbuild部分にjettyのプラグインを登録しておきます。
%lt;plugins%gt;
%lt;plugin%gt;
%lt;groupId%gt;org.mortbay.jetty%lt;/groupId%gt;
%lt;artifactId%gt;maven-jetty-plugin%lt;/artifactId%gt;
%lt;/plugin%gt;
%lt;/plugins%gt;
5.インストールする
作ってるものの直下で下記のコマンドを叩くとローカルにインストールされます。
mvn install
6.アプリケーションを落としてjettyで実行してブラウザで見る
インストールしたいフォルダに移動して
mvn archetype:create -DgroupId=org.wakasa.ttttest -DartifactId=tttest -DarchetypeGroupId=org.wakasa -DarchetypeArtifactId=testsample -DarchetypeVersion=0.1
とコマンドを叩くと、直下にttttestというフォルダを作ってそこに入れてくれる。
完了したらそのフォルダに移動して
mvn jetty:run
とコマンドで叩くと必要なものをMavenが落としてきてjettyが立ち上がってくる。
それからブラウザで下記のURLにアクセスすると無事に見れる・・はず。
http://localhost:8080/tttest/