#navi_header|Java| 実験等で頻繁にMavenプロジェクトを作るときに、archetype:generateのオプションをいちいち調べるのは面倒ですので、こちらによく使いそうなarchetypeオプションをまとめておきます。 ※unix系のシェルでの複数行改行の"\"ですが、Windowsのコマンドプロンプトから実行する場合は"\"を"^"に置換してください。 * 基本形:とりあえずjarファイル用のテンプレートを使いたい Maven提供の "maven-archetype-quickstart" を使います。 ** 対話的に新しいプロジェクトのgroupIdやartifactIdを指定したい archetype:generateを実行するとデフォルトでは対話モードでgroupIdやartifactIdを指定できます。 #pre||> > 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を指定する場合: #pre||> mvn archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DarchetypeVersion=1.1 ||< ** バッチ的に非対話でgroupIdやartifactIdを指定して一気に作成したい "-B"オプションまたは"-DinteractiveMode=false"を指定します。 #pre||> 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 バッチ実行版: #pre||> 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パッケージディレクトリは空で作成されます。 #pre||> 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 バッチ実行版: #pre||> 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ディレクトリが含まれていません。 #pre||> 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 #navi_footer|Java|