はじめてのmaven

mavenを使う必要があったのでメモ

基本的には

$ ls | grep pom.xml
# pom.xmlが存在
$ mvn install

を実行すれば良い。

困ったことがあったのでmemo。

  • compileに利用するjavaのversionを指定したい pom.xmlに追加する方法 直接コマンドに引数を渡す方法
  • 依存しているライブラリを追加したい場合 repositoryに追加+dependencies追加 repositoryに存在しないjarファイルなどを追加したい場合

compileに利用するjavaのversionを指定したい

pom.xmlに追加する方法

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>

直接コマンドに引数を渡す方法

mvn install -Dmaven.compiler.source=1.6 -Dmaven.compiler.target=1.6

依存しているライブラリを追加したい場合

repositoryに追加+dependencies追加

  <dependencies>
    <dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-web-api</artifactId>
      <version>6.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
    	<groupId>org.apache.xmlgraphics</groupId>
    	<artifactId>batik-rasterizer</artifactId>
    	<version>1.7</version>
    </dependency>
    <dependency>
      <groupId>com.googlecode</groupId>
      <artifactId>jsonrpc4j</artifactId>
      <version>0.26</version>
    </dependency>
  </dependencies>

  <repositories>
    <repository>
      <id>jsonrpc4j-webdav-maven-repo</id>
      <name>jsonrpc4j maven repository</name>
      <url>http://jsonrpc4j.googlecode.com/svn/maven/repo/</url>
      <layout>default</layout>
    </repository>
  </repositories>

repositoryに存在しないjarファイルなどを追加したい場合

repositoryに存在しない

直接jarを取ってきてscope=systemで記述

    <dependency>
      <groupId>sun.plugin</groupId>
      <artifactId>plugin</artifactId>
      <version>1.6</version>
      <scope>system</scope>
      <systemPath>${java.home}/lib/plugin.jar</systemPath>
    </dependency> 
  • ${javahome}はJAVAHOME
  • ${basedir}はpom.xmlを実行する時点のcwd

参考

Setting the -source and -target of the Java Compiler http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html MavenPropertiesGuide - Maven User - Codehaus http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide Mavenプロジェクトで3rdパーティJARを扱う方法|Ouobpo http://ameblo.jp/ouobpo/entry-10051976866.html Twitter / cactusman: @podhmo -X(デバッグ)オプションつけてみて ... https://twitter.com/cactusman/status/265379520733921281