maven tips
groovy-eclipse, m2Eclipseを統合して利用する
必要なEclipseプラグイン
- groovy eclipseが提供しているもの(アップデートサイト(eclipse:3.7) [http://dist.springsource.org/release/GRECLIPSE/e3.7/]):
- groovy-eclipse
- groovy-eclipse m2eclipse configurator(こいつが重要!
- sonatype提供のもの(アップデートサイト [http://download.eclipse.org/technology/m2e/releases]):
- m2eclipse
手順
- 新しくmaven プロジェクトを作成
- pom.xmlを後述のように作成
- maven-compiler-pluginの設定が本質。
- target, sourceは、Javaのソースも同一のプロジェクトで作成する場合だけでよい。
- /src/main, /src/testの下にそれぞれgroovyという名前でディレクトリを追加
- /src/main/javaの下に何かしらのjavaクラスを作成
- groovy-eclipse-compilerのバグらしい。ここで利用しているバージョン(2.6.0-01)ではまだfixされていない
- ダミーのjavaクラスを作成せずに.groovyファイルのみのプロジェクトを作成する方法は、groovy-elcipse-compilerのサイトに他にも掲載されている
- [update project configuration]からプロジェクトを最新化する。
以上でm2eのプロジェクトにgroovy-eclipse natureが付与された状態になる。
pom.xml
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>mvn-groovy</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<target>1.6</target>
<source>1.6</source>
<compilerId>groovy-eclipse-compiler</compilerId>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>2.6.0-01</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-eclipse-compiler</artifactId>
<version>2.6.0-01</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>1.8.4</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>springsource</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>https://nexus.codehaus.org/content/groups/snapshots-group/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>springsource</id>
<url>https://nexus.codehaus.org/content/groups/snapshots-group/</url>
</pluginRepository>
</pluginRepositories>
</project>
maven plugin開発でよく利用する組み込みcomponent
AbstractMojoやAbstractReportをExtendsしたクラスであれば、フィールド変数のjavadocに@componentを付与することで下記のインスタンスが取得できる.
/**
* @component
*/
private ArtifactFactory artifactFactory;
org.apache.maven.artifact.factory.ArtifactFactory
Artifactインスタンスのファクトリクラス.
org.apache.maven.artifact.resolver.ArtifactResolver
ArtifactResolver#resolveを利用すると、引数で渡したartifactをローカルレポジトリに落っことしてくることができる.
mavenがデフォルトのライフサイクルの中で、ローカルにないjarを外から持ってくる時に使っているクラス.
org.codehaus.plexus.archiver.manager.ArchiverManager
getArchiverとgetUnArchiverでそれぞれ圧縮、解凍機能を提供してくれる.
最終更新:2012年01月08日 03:34