今回から何回かにわたり、GMaven の使い方を見ていきます(一覧)。
今回の内容
- プロジェクトを生成する
- 対話的にプロジェクトを生成する
- パラメータを指定してプロジェクトを生成する
- 生成されるプロジェクト
- ディレクトリ構造
- pom.xml
プロジェクトを生成する
★対話的にプロジェクトを生成する★
GMaven のサイトには後に説明する「パラメータを指定してプロジェクトを生成する」方法が書かれてますが、明らかに面倒なので、通常は以下で説明する「対話的にプロジェクトを生成する」方法の方が良いでしょう。
「対話的にプロジェクトを生成する」手順は以下の通りです:
- プロジェクトを生成したいフォルダ上で、コマンド「mvn archetype:generate」を実行する
- 「gmaven-archetype-basic (Groovy basic archetype)」の番号(40)を選択する
- グループ ID を入力する
- アーティファクト ID を入力する
- バージョンを入力する(デフォルト値は「1.0-SNAPSHOT」)
- パッケージ名を入力する(デフォルト値はグループ ID と同じ)
- プロジェクトを生成するなら「y」(yes) を入力する
ただし、この方法では、最初に実行するコマンド
mvn archetype:generate
だけを覚えておくだけで OK です。
このプロジェクト生成で表示されるメッセージなどは以下のようになってます:
>mvn archetype:generate
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:generate] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] Preparing archetype:generate
[INFO] No goals needed for project - skipping
[INFO] Setting property: classpath.resource.loader.class => '〜'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] [archetype:generate {execution: default-cli}]
[INFO] Generating project in Interactive mode
[INFO] No archetype defined. Using maven-archetype-quickstart (〜)
Choose archetype:
1: internal -> appfuse-basic-jsf (〜)
2: internal -> appfuse-basic-spring (〜)
〜〜〜
40: internal -> gmaven-archetype-basic (Groovy basic archetype)
41: internal -> gmaven-archetype-mojo (Groovy mojo archetype)
Choose a number: (1/2/〜〜〜/40/41) 15: : 40[Enter]
Define value for groupId: : org.sample[Enter]
Define value for artifactId: : sample[Enter]
Define value for version: 1.0-SNAPSHOT: : [Enter]
Define value for package: org.sample: : [Enter]
Confirm properties configuration:
name: Example Project
groupId: org.sample
artifactId: sample
version: 1.0-SNAPSHOT
package: org.sample
Y: : y[Enter]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 50 seconds
[INFO] Finished at: Tue Apr 06 18:43:41 JST 2010
[INFO] Final Memory: 8M/21M
[INFO] ------------------------------------------------------------------------
- 太字・斜体の部分が自分で入力する箇所です。
- 上記のコマンドでうまくいかない場合は、「-U」オプションを付けて実行して見てください。
「mvn -U archetype:generate」 - 「Groovy Mojo Project」を生成したい場合は、40番ではなく41番を指定します。
★パラメータを指定してプロジェクトを生成する★
一応、GMaven のサイトに載っている方法も紹介しておきます。
この方法では、「mvn archetype:generate」コマンドの後に(1行で )以下のパラメータを指定します。
パラメータ名 | パラメータ値 |
---|---|
archetypeGroupId | org.codehaus.groovy.maven.archetypes |
archetypeArtifactId | gmaven-archetype-basic |
具体的には以下のコマンド
mvn archetype:generate
-DarchetypeGroupId=org.codehaus.groovy.maven.archetypes
-DarchetypeArtifactId=gmaven-archetype-basic
を実行します(1行で)。
実行後は、「対話的にプロジェクトを生成する」方法と同じようにグループ ID やアーティファクト ID を入力していけば、プロジェクトを生成できます。
- GMaven のサイトには「archetypeVersion を指定する必要がある」となってますが、特に必要はなさそうです(デフォルト値が1.0のようです)。
生成されるプロジェクト
以下では、生成されたプロジェクトの「ディレクトリ構造」と「pom.xml」ファイルを見ていきます。
ディレクトリ構造
生成されるプロジェクトのディレクトリ構造は以下のようになっています:
- 「pom.xml」後ほど。
- 「src/main/groovy」アーティファクト(成果物)に含めるソースコード (Groovy ファイル) はこのフォルダ下に配置します。
- 「src/test/groovy」テストコード (Groovy ファイル) はこのフォルダ下に配置します。
まぁ、Maven2 にとっては、いたって普通の フォルダ構造というところでしょう。
pom.xml
pom.xml には
- groovy-runtime への依存性
- JUnit への依存性
- GMaven プラグインの設定
がデフォルトで書かれています。
<?xml version="1.0" encoding="UTF-8"?> <!-- Generated from archetype; please customize. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.sample</groupId> <artifactId>sample</artifactId> <name>Example Project</name> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.codehaus.groovy.maven.runtime</groupId> <artifactId>gmaven-runtime-default</artifactId> <version>1.0-rc-3</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.groovy.maven</groupId> <artifactId>gmaven-plugin</artifactId> <version>1.0-rc-3</version> <executions> <execution> <goals> <goal>generateStubs</goal> <goal>compile</goal> <goal>generateTestStubs</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
- 作者: Dierk Konig,Andrew Glover,Paul King,Guillaume Laforge,Jon Skeet,杉浦孝,櫻井正樹,須江信洋,関谷和愛,佐野徹郎,寺沢尚史
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 146回
- この商品を含むブログ (121件) を見る