Mavenメモ

Mavenを使うとビルドを自動化できます。Mavenについて簡単にメモ

  • ソースコードからバイナリコードを生成
  • バイナリコードからパッケージを生成
  • テストコード実行
  • リモートシステムへデプロイ
  • ドキュメントとリリースノートを作成
$ mvn archetype:generate -DgroupId=org.sssg.soft.maven.example -DartifactId=ExampleApp
$ mvn validate
$ mvn compile
$ mvn package
$ mvn test

インストールまで進めたい場合は、単にinstallコマンドを実行すれば良い。

$ mvn install

プロジェクトのモジュール化には、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>org.sssg.soft.maven.example</groupId>
  <artifactId>ExampleApp2</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>LargeApp</name>
</project>

モジュールの指定を追加することもできます。

  <modules>
    <module>ExampleJar</module>
  </modules>

下記の手順で確認ができます。pom.xmlにmoduleを指定します。

$ mkdir ExampleApp2/
$ vi ExampleApp2/pom.xml
$ cd ExampleApp2/
$ mvn archetype:generate -DgroupId=org.sssg.soft.maven.example -DartifactId=ExampleJar

Webアプリは下記のようにして生成できます。

$ mvn archetype:generate  -DgroupId=org.sssg.soft.maven.example -DartifactId=ExampleWar -DarchetypeArtifactId=maven-archetype-webapp

mavenのローカルリポジトリへJAR, WARがインストールするには、下記のようにします。

$ mvn clean install

dependencyプラグインというものもあります。プロジェクトでどんなライブラリを使っているのか、といった依存関係について調べたいときに使います。

$ mvn dependency:analyze
$ mvn dependency:analyze-duplicate
$ mvn dependency:resolve
$ mvn dependency:resolve-plugins
$ mvn dependency:tree

ソースコード品質チェック PMDプラグイン。ルールは、EclipseのPMDプラグインからエクスポートして利用するのが良いようです。

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>2.5</version>
      </plugin>
    </plugins>
  </reporting>>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>2.5</version>
<configuration>
  <rulesets>
    <ruleset>/rulesets/basic.xml</ruleset>
    <ruleset>/rulesets/controversial.xml</ruleset>
    <ruleset>http://localhost/design.xml</ruleset>
  </rulesets>
  <sourceEncoding>UTF-8</sourceEncoding>    
  <minimumTokens>100</minimumTokens>
  <targetJdk>1.6</targetJdk>
</configuration>
      </plugin>
    </plugins>
  </reporting>>

使うときは下記のように。

$ mvn pmd:pmd

Mavenのデフォルトビルドサイクルへ統合することも出来ます。

<build><plugins><plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>2.5</version>
<executions><execution><goals>
<goal>check</goal>
<goal>cpd-check</goal>
</goals></execution></executions>
</plugin></plugins></build>

生成されるpom.xmlでは、JUnit 3.8.1のバージョンが使われていることもありますが、古いので 4.8.2とした方がよい。
selenium-maven-plugin, maven-jetty-plugin といったプラグインもあるので利用したいところ。

同じタグの記事: Java
同じタグの記事: Linux
同じタグの記事: Maven
同じカテゴリの記事: Java
関連書籍: Java