実験等で頻繁にMavenプロジェクトを作るときに、archetype:generateのオプションをいちいち調べるのは面倒ですので、こちらによく使いそうなarchetypeオプションをまとめておきます。
※unix系のシェルでの複数行改行の"\"ですが、Windowsのコマンドプロンプトから実行する場合は"\"を"^"に置換してください。
Maven提供の "maven-archetype-quickstart" を使います。
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
"-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] ------------------------------------------------------------------------
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
今回は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
codehausのWebアプリテンプレートですが、JavaEE6向けの、Servlet 3.0 APIベースのバージョンが出てました。2014-08時点での最新版は 1.5 となってます。
ショートカット:
mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=webapp-javaee6
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/が無かったりするのですが・・・)
Maven提供ですと以下のリポジトリURLを覗いてみますと、色々サンプルがあるようです。
http://search.maven.org/#browse%7C-1174413781
codehausのarchetypesにも色々あります。
http://search.maven.org/#browse%7C-1053090499
コメント