似非プログラマのうんちく

「似非プログラマの覚え書き」出張版

Apache Maven を使ってみよう(その 3)

Mavenプラグインについて

Mavenプラグインは主に以下のサイトで用意されている。
Maven – Available Plugins
Mojo – MojoHaus Maven Plugins Project

Exec Maven Plugin

前回の課題になっていた、Maven のビルドの実行の際に main を実行するためには、Mojo で用意されている Exec Maven Plugin を利用する。

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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>jp.mydns.akanekodou</groupId>
  <artifactId>MavenSample</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>

  <name>MavenSample</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.4.0</version>
        <configuration>
          <mainClass>jp.mydns.akanekodou.App</mainClass>
        </configuration>
        <executions>
          <execution>
            <phase>test</phase>
            <goals>
              <goal>java</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

build 要素が新たに追加され、その直下に plugins 要素がある。Mavenプラグインにはビルドプラグインとレポーティングプラグインがあり、Exec Maven Plugin はビルドプラグインなので build 要素に追加することになる。

今回は mvn test を実行したら自動的に mvn test exec:java が実行されるように設定している。

mvn test を実行すると…

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running jp.mydns.akanekodou.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.148 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- exec-maven-plugin:1.4.0:java (default) @ MavenSample ---
Hello World!
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.490 s
[INFO] Finished at: 2015-08-27T20:57:56+09:00
[INFO] Final Memory: 11M/212M
[INFO] ------------------------------------------------------------------------

確かに実行されている。