アットウィキロゴ

maven tips

maven tips


groovy-eclipse, m2Eclipseを統合して利用する


必要なEclipseプラグイン

  1. groovy eclipseが提供しているもの(アップデートサイト(eclipse:3.7) [http://dist.springsource.org/release/GRECLIPSE/e3.7/]):
    1. groovy-eclipse
    2. groovy-eclipse m2eclipse configurator(こいつが重要!
  2. sonatype提供のもの(アップデートサイト [http://download.eclipse.org/technology/m2e/releases]):
    1. m2eclipse

手順

  1. 新しくmaven プロジェクトを作成
  2. pom.xmlを後述のように作成
    • maven-compiler-pluginの設定が本質。
    • target, sourceは、Javaのソースも同一のプロジェクトで作成する場合だけでよい。
  3. /src/main, /src/testの下にそれぞれgroovyという名前でディレクトリを追加
  4. /src/main/javaの下に何かしらのjavaクラスを作成
    • groovy-eclipse-compilerのバグらしい。ここで利用しているバージョン(2.6.0-01)ではまだfixされていない
    • ダミーのjavaクラスを作成せずに.groovyファイルのみのプロジェクトを作成する方法は、groovy-elcipse-compilerのサイトに他にも掲載されている
  5. [update project configuration]からプロジェクトを最新化する。

以上でm2eのプロジェクトにgroovy-eclipse natureが付与された状態になる。

pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.example</groupId>
  5. <artifactId>mvn-groovy</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7.  
  8. <build>
  9. <plugins>
  10. <plugin>
  11. <artifactId>maven-compiler-plugin</artifactId>
  12. <version>2.3.2</version>
  13. <configuration>
  14. <target>1.6</target>
  15. <source>1.6</source>
  16. <compilerId>groovy-eclipse-compiler</compilerId>
  17. <verbose>true</verbose>
  18. </configuration>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.codehaus.groovy</groupId>
  22. <artifactId>groovy-eclipse-compiler</artifactId>
  23. <version>2.6.0-01</version>
  24. </dependency>
  25. </dependencies>
  26. </plugin>
  27. <plugin>
  28. <groupId>org.codehaus.groovy</groupId>
  29. <artifactId>groovy-eclipse-compiler</artifactId>
  30. <version>2.6.0-01</version>
  31. <extensions>true</extensions>
  32. </plugin>
  33. </plugins>
  34. </build>
  35.  
  36. <dependencies>
  37. <dependency>
  38. <groupId>org.codehaus.groovy</groupId>
  39. <artifactId>groovy-all</artifactId>
  40. <version>1.8.4</version>
  41. </dependency>
  42. </dependencies>
  43.  
  44. <repositories>
  45. <repository>
  46. <id>springsource</id>
  47. <releases>
  48. <enabled>true</enabled>
  49. </releases>
  50. <snapshots>
  51. <enabled>true</enabled>
  52. </snapshots>
  53. <url>https://nexus.codehaus.org/content/groups/snapshots-group/</url>
  54. </repository>
  55. </repositories>
  56.  
  57. <pluginRepositories>
  58. <pluginRepository>
  59. <id>springsource</id>
  60. <url>https://nexus.codehaus.org/content/groups/snapshots-group/</url>
  61. </pluginRepository>
  62. </pluginRepositories>
  63.  
  64. </project>
  65.  

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