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

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

Mavenメモ

自分向けのメモ

基本

Maven | TECHSCORE(テックスコア)

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

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

Mavenでビルドする際の10のTips - cynipeと読む

今まで知らなかった 5 つの事項: Apache Maven

パス

Mavenを使ってリソースファイルをJARの外部に配置する方法 - Qiita

Maven3で環境ごとのresourceを差分で管理する方法 - Qiita

実行時制御

Maven管理下のリソースファイルの値を実行時にプロパティの値で置換する (Resource Filtering) - 理系学生日記

テックノート – 【Maven】profilesを使って、環境毎に異なる設定値(propertyファイル)を変更する方法

Exec Maven Plugin

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

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

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

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

No hack, No chance: Jar の META-INF/MANIFEST.MF に書いた Class-Path が効かない件

モジュール管理

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

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

3. Maven 入門 (7) | TECHSCORE(テックスコア)

2010-11-27 - にゃんだふる日記

Mavenでの依存ライブラリの最新バージョンを表示、更新したりできるVersions Maven Plugin - CLOVER

Apache Maven Javadoc Plugin – Grouping Packages

Mavenプラグインで外部ライブラリをrepackageする方法 - Kengo's blog

Maven Assembly Pluginで実行可能jarをつくる - 理系学生日記

Maven Assembly Plugin をマルチモジュールプロジェクトで使う - A Memorandum

Maven Assembly Plugin でできるファイル名がクソダサかった話 - 理系学生日記

JavaDoc

みかん箱

mvn siteのtips三連発 | nagaseyasuhito Daily works.

GitでMavenリポジトリ

Github上に私設Mavenリポジトリをつくる - M12i.

GitHub の Pages を maven リポジトリとして使用するときのアカウント情報をセキュアにする(OAuth2Token) | KK.Kon の徒然メモ書き

http://synergian.github.io/wagon-git/usage.html

Github を Maven リポジトリとして使う -

PMD

Maven使いのためのPMD入門(2012年夏) - Kengo's blog

PMD rulesetの一覧(java) | Monotalk

PMD 標準的な ruleset とは何かを調べてみる | Monotalk

プラグイン

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