※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

まず、Javaのプロジェクトを作るですよ。
手でディレクトリを作っていくのもいいかもだけど、ソースの格納場所などディレクトリの構成が普通のJavaプロジェクトと違うので、最初はmaven2に作ってもらったほうがいいかも。




プロジェクトを新規で作成してもらうコマンド

こんなコマンドをたたいてごーー。
mvn archetype:create -DgroupId=jp.co.dotcom -DartifactId=maventest

そうすると、カレント(実行したパスのところ)にmaventestってディレクトリができているはず。

groupIdとかartifactIdとか指定してますが、これが何なのかは実際に作ってみるとちょとだけわかるですよ。


実行してみる

実行例はこちら。こんなログが出ます。

Z:\> mvn archetype:create -DgroupId=jp.co.dotcom -DartifactId=maventest
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] artifact org.apache.maven.plugins:maven-archetype-plugin: checking for updates from central
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-3/maven-archetype-plugin-2.0-alpha-3.pom
4K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetype/maven-archetype/2.0-alpha-3/maven-archetype-2.0-alpha-3.pom
13K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/8/maven-parent-8.pom
23K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-3/maven-archetype-plugin-2.0-alpha-3.jar
71K downloaded
[INFO] ----------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:create] (aggregator-style)
[INFO] ----------------------------------------------------------------------------
Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetype/archetype-common/2.0-alpha-3/archetype-common-2.0-alpha-3.pom
15K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-core/2.0.8/maven-core-2.0.8.pom
6K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-parameter-documenter/2.0.8/maven-plugin-parameter-documenter-2.0.8.pom
1K downloaded
Downloading: http://repo1.maven.org/maven2/jp/co/dotcom/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
Downloading: http://repo1.maven.org/maven2/jp/co/dotcom/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
Downloading: http://repo1.maven.org/maven2/org/apache/maven/reporting/maven-reporting-api/2.0.8/maven-reporting-api-2.0.8.pom
1K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/reporting/maven-reporting/2.0.8/maven-reporting-2.0.8.pom
1K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-9/doxia-sink-api-1.0-alpha-9.pom
1K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/doxia/doxia/1.0-alpha-9/doxia-1.0-alpha-9.pom
8K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-error-diagnostics/2.0.8/maven-error-diagnostics-2.0.8.pom
1K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-descriptor/2.0.8/maven-plugin-descriptor-2.0.8.pom
2K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-monitor/2.0.8/maven-monitor-2.0.8.pom
1K downloaded
Downloading: http://repo1.maven.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.pom
1K downloaded
Downloading: http://repo1.maven.org/maven2/commons-io/commons-io/1.3.1/commons-io-1.3.1.pom
6K downloaded
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.pom
976b downloaded
Downloading: http://repo1.maven.org/maven2/commons-collections/commons-collections/2.0/commons-collections-2.0.pom
171b downloaded
Downloading: http://repo1.maven.org/maven2/velocity/velocity/1.5/velocity-1.5.pom
7K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker/2.0.6/maven-invoker-2.0.6.pom
2K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-shared-components/6/maven-shared-components-6.pom
3K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetype/archetype-common/2.0-alpha-3/archetype-common-2.0-alpha-3.jar
227K downloaded
Downloading: http://repo1.maven.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.jar
25K downloaded
Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.jar
7K downloaded
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker/2.0.6/maven-invoker-2.0.6.jar
24K downloaded
Downloading: http://repo1.maven.org/maven2/velocity/velocity/1.5/velocity-1.5.jar
382K downloaded
Downloading: http://repo1.maven.org/maven2/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar
81K downloaded
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [archetype:create]
[WARNING] This goal is deprecated. Please use mvn archetype:generate instead
[INFO] Defaulting package to group ID: jp.co.dotcom
[INFO] artifact org.apache.maven.archetypes:maven-archetype-quickstart: checking for updates from central
Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.0/maven-archetype-quickstart-1.0.jar
4K downloaded
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating OldArchetype: maven-archetype-quickstart:RELEASE
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: jp.co.dotcom
[INFO] Parameter: packageName, Value: jp.co.dotcom
[INFO] Parameter: package, Value: jp.co.dotcom
[INFO] Parameter: artifactId, Value: maventest
[INFO] Parameter: basedir, Value: Z:\
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] ********************* End of debug info from resources from generated POM ***********************
[INFO] OldArchetype created in dir: Z:\\maventest
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 41 seconds
[INFO] Finished at: Fri May 16 15:35:04 JST 2008
[INFO] Final Memory: 7M/13M
[INFO] ------------------------------------------------------------------------

Z:\>

ながーい!

これでz:\maventestが作られて、その中に
  • srcディレクトリ
  • pom.xml
ができます。

srcディレクトリ

javaプロジェクトのソースフォルダみたいな感じ。
  • src/main/java内がソースコードを入れるところ。
  • src/test/java内がJunitのテストコードを入れるところ。

groupIdで指定した通りのディレクトリ構成になっていればおっけー。
つまり、こんな構成。

src
|-main
|  |-java
|     |-jp
|       |-co
|         |-dotcom
|            |-App.java
|-test
   |-java
      |-jp
        |-co
          |-dotcom
             |-AppTest.java


srcディレクトリには、以下のサンプルのクラスとテストコードが入っているので、すぐ実行して確認もできるんだって。
  • App.java
  • AppTest.java
やったことなかったわ。。。


参考 必要なダウンロードは1回だけのこと

2回目に別のプロジェクトを作成するためにarchetype:createを実行すると、一瞬で終わります。

Z:\> mvn archetype:create -DgroupId=jp.co.dotcom -DartifactId=maventest2
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] ----------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:create] (aggregator-style)
[INFO] ----------------------------------------------------------------------------
Downloading: http://repo1.maven.org/maven2/jp/co/dotcom/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
Downloading: http://repo1.maven.org/maven2/jp/co/dotcom/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.pom
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [archetype:create]
[WARNING] This goal is deprecated. Please use mvn archetype:generate instead
[INFO] Defaulting package to group ID: jp.co.dotcom
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating OldArchetype: maven-archetype-quickstart:RELEASE
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: jp.co.dotcom
[INFO] Parameter: packageName, Value: jp.co.dotcom
[INFO] Parameter: package, Value: jp.co.dotcom
[INFO] Parameter: artifactId, Value: maventest2
[INFO] Parameter: basedir, Value: Z:\
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] ********************* End of debug info from resources from generated POM ***********************
[INFO] OldArchetype created in dir: Z:\maventest2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5 seconds
[INFO] Finished at: Fri May 16 15:39:09 JST 2008
[INFO] Final Memory: 7M/13M
[INFO] ------------------------------------------------------------------------

Z:\>

これは
Downloading: 
がないからなのですね。
最初のmvn archetype:createを実行した時にダウンロードしたものは、ローカルリポジトリに入ってくれます。
一度mvn archetype:createを実行している環境なら、そのローカルリポジトリから参照できるからやらないんです。
ローカルリポジトリの場所を変えたりすると、またダウンロードしてきます。

ローカルリポジトリのことはまた別のときに。

最近ではgenerateで対話型

maven2ではcreateよりもこっちなのね。
mvn -U archetype:generate

「--update-snapshots」って。。。
maven2?