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 といったプラグインもあるので利用したいところ。