home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

Java/Maven3/archetype:generateショートカット集

Java/Maven3/archetype:generateショートカット集

Java / Maven3 / archetype:generateショートカット集
id: 1089 所有者: msakamoto-sf    作成日: 2012-06-10 18:57:10
カテゴリ: Java Maven 

実験等で頻繁にMavenプロジェクトを作るときに、archetype:generateのオプションをいちいち調べるのは面倒ですので、こちらによく使いそうなarchetypeオプションをまとめておきます。

※unix系のシェルでの複数行改行の"\"ですが、Windowsのコマンドプロンプトから実行する場合は"\"を"^"に置換してください。

基本形:とりあえずjarファイル用のテンプレートを使いたい

Maven提供の "maven-archetype-quickstart" を使います。

対話的に新しいプロジェクトのgroupIdやartifactIdを指定したい

archetype:generateを実行するとデフォルトでは対話モードでgroupIdやartifactIdを指定できます。

> mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
Define value for property 'groupId': : mvn-test
Define value for property 'artifactId': : mvn-jar-test
Define value for property 'version':  1.0-SNAPSHOT: :
Define value for property 'package':  mvn-test: :
Confirm properties configuration:
groupId: mvn-test
artifactId: mvn-jar-test
version: 1.0-SNAPSHOT
package: mvn-test
...

"mvn-jar-test"ディレクトリが作成され、pom.xmlなどが展開されます。

より厳密にarchetypeを指定する場合:

mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.1

バッチ的に非対話でgroupIdやartifactIdを指定して一気に作成したい

"-B"オプションまたは"-DinteractiveMode=false"を指定します。

mvn archetype:generate -B \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.1 \
-DgroupId=mvn-test \
-DartifactId=mvn-jar-test \
-Dversion=1.0-SNAPSHOT \
-Dpackage=mvn.jar.test

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom <<<
[INFO]
[INFO] --- maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Batch mode
[INFO] Archetype repository missing. Using the one from [org.apache.maven.archetypes:maven-archetype-quickstart:1.1] found in catalog remote
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: mvn-test
[INFO] Parameter: packageName, Value: mvn.jar.test
[INFO] Parameter: package, Value: mvn.jar.test
[INFO] Parameter: artifactId, Value: mvn-jar-test
[INFO] Parameter: basedir, Value: c:\in_vitro\tmp\mvntest
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] ********************* End of debug info from resources from generated POM ***********************
[INFO] project created from Old (1.x) Archetype in dir: c:\in_vitro\tmp\mvntest\mvn-jar-test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.654s
[INFO] Finished at: Sun Jun 10 18:07:00 JST 2012
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------

Servletアプリ(warパッケージ)のテンプレートを使いたい

2012-06時点でのオススメはcodehausのwebapp-jee5なので、先にそちらを紹介します。

codehausのarchetypeはJavaEEのバージョン番号で分かれています。以下にJavaEEのバージョン番号と対応するServlet/JSP/JSTLのバージョン番号をまとめておきます。

JavaEE6 : Servlet 3.0, JSP2.2 : Tomcat 7以上
JavaEE5 : Servlet 2.5, JSP 2.1 : Tomcat 6以上
J2EE 1.4 : Servlet 2.4, JSP 2.0 : Tomcat 5.x, 5.5.x以上
J2EE 1.3 : Servlet 2.3 JSP 1.2 -> TOmcat 4.x

org.codehaus.mojo.archetypes:webapp-jee5

今回はTomcat6以上で対応しているJavaEE5用のcodehausのWebアプリテンプレートを使ってみます。2012-06時点での最新版は1.3となっています。

ショートカット:

mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=webapp-jee5

バッチ実行版:

mvn archetype:generate -B \
-DarchetypeGroupId=org.codehaus.mojo.archetypes \
-DarchetypeArtifactId=webapp-jee5 \
-DarchetypeVersion=1.3 \
-DgroupId=mvn-test \
-DartifactId=mvn-war-test \
-Dversion=1.0-SNAPSHOT \
-Dpackage=mvn.war.test

以下のようなディレクトリ構成が展開されます。javaパッケージディレクトリは空で作成されます。

mvn-war-test/
    pom.xml
    src/
        main/
            java/... (空)
            webapp/
                WEB-INF/web.xml
                index.jsp

org.codehaus.mojo.archetypes:webapp-javaee6

codehausのWebアプリテンプレートですが、JavaEE6向けの、Servlet 3.0 APIベースのバージョンが出てました。2014-08時点での最新版は 1.5 となってます。

ショートカット:

mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=webapp-javaee6

org.apache.maven.archetypes:maven-archetype-webapp

Maven提供の"maven-archetype-webapp"を紹介します。2012-06時点でのバージョン1.0を使っています。
ショートカット:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp

バッチ実行版:

mvn archetype:generate -B \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-webapp \
-DarchetypeVersion=1.0 \
-DgroupId=mvn-test \
-DartifactId=mvn-war-test \
-Dversion=1.0-SNAPSHOT \
-Dpackage=mvn.war.test

但し、maven-archetype-webappの場合は以下のようなソースが展開され、肝心のJavaディレクトリが含まれていません。

mvn-war-test/
    pom.xml
    src/
        main/
            resources/ (空)
            webapp/
                WEB-INF/web.xml
                index.jsp

というわけで個人的にはJavaディレクトリが含まれるcodehausがオススメです。(とはいえcodehaus側はresources/が無かったりするのですが・・・)

その他のオススメarchetype

Maven提供ですと以下のリポジトリURLを覗いてみますと、色々サンプルがあるようです。
http://search.maven.org/#browse%7C-1174413781

codehausのarchetypesにも色々あります。
http://search.maven.org/#browse%7C-1053090499



プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2014-08-10 16:26:26
md5:be37f610d9593661ec62cd81aebf1fb5
sha1:d45d9692a7973e8b80df7df977f6adb1d22f0e86
コメント
コメントを投稿するにはログインして下さい。