読者です 読者をやめる 読者になる 読者になる

システム開発で思うところ

JavaEEを主にシステム開発をしながら思うところをツラツラを綴る

Mavenメモ

自分向けのメモ

基本

pom.xmlの各要素デフォルト値と変数置換について - Qiita

Maven pom.xml のバージョン番号を Java プログラムから取得する / 桃缶食べたい。

Mavenでビルドする際にpomによく書くことメモ - Qiita

Exec Maven Plugin

Exec Maven Plugin で maven コマンドでアプリを起動する

[Maven2][Java]Maven2で作ったjarプロジェクトを簡単に実行する - SOSOG

Apache Mavenで簡単Javaアプリ実行 | hiro345

Maven pom.xml のバージョン番号を Java プログラムから取得する / 桃缶食べたい。

モジュール管理

Mavenプロジェクトをモジュール化する | Java好き

java - Maven / FatJarのビルドについて - スタック・オーバーフロー

パッケージのグループ化

プラグイン

Jacocoでレポートがファイルが出力されない。 | BOATRIP

警告は出るけど、とりあえず出力はされている自分のpom.xml抜粋

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.7.201606060606</version>
    <executions>
        <execution>
            <id>prepare-agent</id>
            <phase>test-compile</phase>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>report</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <skipTests>false</skipTests>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-report-plugin</artifactId>
    <version>2.19.1</version>
</plugin>

出力される警告
file.encoding cannot be set as system property, use <argLine>-Dfile.encoding=...</argLine> instead

ということでmaven-surefire-plugin<argLine>を追記するけれどカバレージレポートが出なくなる。
現状は警告を放置してレポートが出力される方を優先することにしている。

循環参照チェック

パッケージ間の循環依存を自動で検出する | GuildWorks Blog

テストクラスは、とりあえず、言われるままに実装。
今のところ循環は無いみたい。

pom.xmlの関連個所のみ

    <dependency>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jdepend-maven-plugin</artifactId>
        <version>2.0</version>
        <scope>test</scope>
        <type>jar</type>
    </dependency>


<reporting>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jdepend-maven-plugin</artifactId>
            <version>2.0</version>
        </plugin>
    </plugins>
</reporting>

依存管理

Mavenでプロジェクトの依存関係を解析する - CLOVER