Apache Maven is a software project management and comprehension tool.
Mavenは、不明瞭なソフトウェア開発プロジェクト、という存在をモデル化しました。
ずっと避けてたけど、そろそろ避けられなくなってきたので Maven2 の使い方をメモする。とりあえず、インストールから簡単なコマンドラインプログラムを作るまで。
Maven3のビルドライフサイクル、フェーズ、ゴールについて学んだ内容をまとめた記事です。なお、依存関係の解決やアーティファクトのリポジトリへのインストール、プロファイルの仕組み等については扱いません。
SNAPSHOT とは、開発中のコードであることを示す値です。-SNAPSHOT というサフィックスがつけられたプロダクト(例:sample-1.0.0-SNAPSHOT.jar など)は、まだ安定してなくて、今後も更新される可能性がある、ということになります。
ずっと Gradle 使ってたけど、お仕事で Maven をゴリゴリに使わないといけなくなったのでお勉強。
事象 : パッケージjavax.annotationは存在しません
Known Issues - If any of your plugin mojos spawns new threads there might be a change in class loading as a result of the fix for MNG-6843. See discussion with a possible fix for your plugin mojo as well as a potential general fix in MNG-7212.
<properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties>
You can override the default color of a style with the system property style.style_name.
I propose to add an option to control output coloring directly.
Note that the actual flag is -Dstyle.color=(auto|always|never).
JAR ファイルの作成 (パッケージング) を行うには次のコマンドを実行します: mvn package
Maven で各環境に応じたアプリケーション実行用のバッチファイルを作成するにはMojo project にて提供されているappassembler-maven-plugin を利用します。
コマンドから java -jar で実行可能なエントリーポイントを含むjarを作る 上記jarで必要なライブラリ類を同包したアーカイブを作る
依存ライブラリの最新バージョンを表示するには、「versions:display-dependency-updates」を指定します。 mvn versions:display-dependency-updates
mavenレポートプラグインをてんこ盛りにしたpom.xmlの設定例です。
siteゴールで適用されるロケールをja,入出力されるコンテンツの文字コードをUTF-8と設定している。実はこれだけで, 標準Webページに関しては日本語化される。
test が 2回走る対策 実行コマンドとして mvn site ではなく、mvn surefire-report:report-only を使う
通常、複数のモジュールで構成されているプロジェクトで javadoc:javadoc ゴールを実行すると、モジュールごとに別々の Javadoc が生成されます。しかし、プロジェクトで最上位の pom.xml に設定を行うと、プロジェクト全体のドキュメントを生成できます。
The maven-pmd-plugin by default skips nowadays empty reports (property skipEmptyReport). You'll need to set this to false, to get in your site always a PMD/CPD report:
Status: Since Findbugs is no longer maintained, please use Spotbugs which has a Maven plugin. It is located at here.
SpotBugs is a program which uses static analysis to look for bugs in Java code.
この章では,Maven プロジェクトに SpotBugs を統合する方法について説明します。
SpotBugs looks for bugs in Java programs.
Jenkinsに静的解析、テスト結果をまとめてレポートしてもらう為のMaven設定を記したもの。
静的解析をverifyフェーズで実行している理由 これはOpenCloverのカバレッジ取得の仕組みが原因で、testフェーズ以前だと静的解析でエラーを検出してしまうため。
Jenkins公式で開発されている warnings-na-plugin 。プラグインの ng はNext Generationなので、今後はこっちを開発していく方針っぽい。
MavenのProxy設定を記述するsettings.xmlのパス 例:Maven名をamatsukazeとした場合 /var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/amatsukaze/conf/settings.xml