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