#author("2023-04-02T00:58:18+00:00","default:hotate","hotate") #author("2023-11-02T11:33:39+00:00","default:hotate","hotate") #contents &tag(Maven,Java); * 概要 [#o4347776] - [[Maven – Welcome to Apache Maven>https://maven.apache.org/]] Apache Maven is a software project management and comprehension tool. - [[- 第1回 Mavenって何?>http://objectclub.jp/technicaldoc/tools/maven/maven01]] Mavenは、不明瞭なソフトウェア開発プロジェクト、という存在をモデル化しました。 - [[Java - Maven2使い方メモ - Qiita>http://qiita.com/opengl-8080/items/226dd39bd02e41b9de28]] ずっと避けてたけど、そろそろ避けられなくなってきたので Maven2 の使い方をメモする。とりあえず、インストールから簡単なコマンドラインプログラムを作るまで。 - [[Mavenのビルドライフサイクル - Qiita>https://qiita.com/kawakawaryuryu/items/96db58fb9a607973eca0]] ([[2019]]/1/12) mavenには3つのビルドライフサイクルがあります。 - clean: ビルドした成果物を削除する - default: デプロイまでを行う - site: サイトドキュメントを生成する - [[Maven 3.5のビルドライフサイクルを学ぶ - Qiita>https://qiita.com/rubytomato@github/items/8b159a9e4376bbe04d0b]] ( 2019/08/01) Maven3のビルドライフサイクル、フェーズ、ゴールについて学んだ内容をまとめた記事です。なお、依存関係の解決やアーティファクトのリポジトリへのインストール、プロファイルの仕組み等については扱いません。 - [[Maven:SNAPSHOTのリリース方法 - Web開発など>https://web-dev.hatenablog.com/entry/maven/central/release-snapshot]] SNAPSHOT とは、開発中のコードであることを示す値です。-SNAPSHOT というサフィックスがつけられたプロダクト(例:sample-1.0.0-SNAPSHOT.jar など)は、まだ安定してなくて、今後も更新される可能性がある、ということになります。 - [[Mavenの基本勉強メモ - Qiita>https://qiita.com/opengl-8080/items/bb32732f9aa5cb3495d2]] (2020/04/07) ずっと Gradle 使ってたけど、お仕事で Maven をゴリゴリに使わないといけなくなったのでお勉強。 ** [[トラブル]] [#ke38a75c] - [[プロジェクトをMavenでビルドできない時の対応方法 - Qiita>https://qiita.com/ponsuke0531/items/bfa1998d4ac24788529d]] (2021/02/24) 事象 : パッケージjavax.annotationは存在しません ** 3.8.2 [#zcd6df09] - [[Maven – Release Notes – Maven 3.8.2>https://maven.apache.org/docs/3.8.2/release-notes.html]] 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. * 設定 [#t3a0983b] ** [[Java]] [#i68aecc1] - [[Unable to compile simple Java 10 / Java 11 project with Maven - Stack Overflow>https://stackoverflow.com/questions/49398894/unable-to-compile-simple-java-10-java-11-project-with-maven]] <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> ** [[プロキシ]] [#c00078e7] - [[Maven – Guide to using proxies>https://maven.apache.org/guides/mini/guide-proxies.html]] Configuring a proxy You can configure a proxy to use for some or all of your HTTP requests with Maven. ** カラー出力 [#t63569f4] - [[How to customize colors in maven 3.5 console output - Stack Overflow>https://stackoverflow.com/questions/43425304/how-to-customize-colors-in-maven-3-5-console-output]] You can override the default color of a style with the system property style.style_name. - [[[MNG-6220] Add CLI options to control color output - ASF JIRA>https://issues.apache.org/jira/browse/MNG-6220]] I propose to add an option to control output coloring directly. - [[How do I remove colors from Maven output? - Stack Overflow>https://stackoverflow.com/questions/43638595/how-do-i-remove-colors-from-maven-output]] Note that the actual flag is -Dstyle.color=(auto|always|never). - [[maven/MavenCli.java at df67c00fba25a52e39fa43021b52de8a25b6e999 · apache/maven>https://github.com/apache/maven/blob/df67c00fba25a52e39fa43021b52de8a25b6e999/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java#L507-L525]] - [[How to remove colors from Maven output permanently - Stack Overflow>https://stackoverflow.com/questions/62642650/how-to-remove-colors-from-maven-output-permanently]] -- コメント:コメントの通り動作しなかった。(2021/10/11) * コマンド [#yed4d9cd] ** パッケージ [#n264d364] - [[2. Maven 入門 (4) | TECHSCORE(テックスコア)>http://www.techscore.com/tech/Java/ApacheJakarta/Maven/2-4/#maven-2-8]] JAR ファイルの作成 (パッケージング) を行うには次のコマンドを実行します: mvn package - [[Maven でアプリケーション実行用バッチファイルを作る - A Memorandum>http://etc9.hatenablog.com/entry/20101206/1291619754]] Maven で各環境に応じたアプリケーション実行用のバッチファイルを作成するにはMojo project にて提供されているappassembler-maven-plugin を利用します。 - [[mavenで実行可能なjarファイルと依存ライブラリを含めたzipアーカイブを作成する – 寺子屋未満>http://terakonya.sarm.net/wordpress/2012/02/02/maven_build_assembly/]] コマンドから java -jar で実行可能なエントリーポイントを含むjarを作る 上記jarで必要なライブラリ類を同包したアーカイブを作る ** プラグイン [#ja2c4a8c] - [[Mavenでの依存ライブラリの最新バージョンを表示、更新したりできるVersions Maven Plugin - CLOVER>http://d.hatena.ne.jp/Kazuhira/20160528/1464444327]] 依存ライブラリの最新バージョンを表示するには、「versions:display-dependency-updates」を指定します。 mvn versions:display-dependency-updates * レポート [#r1eea6b5] - [[mavenのレポートプラグインてんこ盛り設定 - Sacrificed & Exploited>https://cnaos.hatenablog.com/entry/20100526/1274838431]] (2010/05/26) mavenレポートプラグインをてんこ盛りにしたpom.xmlの設定例です。 - [[maven2のsiteゴールで自作ページを追加する>https://www.eisbahn.jp/yoichiro/2007/02/maven2site_1.html]] siteゴールで適用されるロケールをja,入出力されるコンテンツの文字コードをUTF-8と設定している。実はこれだけで, 標準Webページに関しては日本語化される。 - [[Maven プロジェクトレポートの作成 - @//メモ>http://hondou.homedns.org/pukiwiki/index.php?Maven%20%A5%D7%A5%ED%A5%B8%A5%A7%A5%AF%A5%C8%A5%EC%A5%DD%A1%BC%A5%C8%A4%CE%BA%EE%C0%AE]] test が 2回走る対策 実行コマンドとして mvn site ではなく、mvn surefire-report:report-only を使う -- [[Maven2のテストフェーズについてあれこれ - とある誰かの覚え書き>http://d.hatena.ne.jp/aqvi/20090210/1234290125]] ** Javadoc [#ycb6076f] - [[[Maven] 全モジュールをまとめた Javadoc を生成するメモみかん箱>http://mikanbako.blog.shinobi.jp/java/-maven-%20%E5%85%A8%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E3%81%BE%E3%81%A8%E3%82%81%E3%81%9F%20javadoc%20%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E3%83%A1%E3%83%A2]] (2006/12/03) 通常、複数のモジュールで構成されているプロジェクトで javadoc:javadoc ゴールを実行すると、モジュールごとに別々の Javadoc が生成されます。しかし、プロジェクトで最上位の pom.xml に設定を行うと、プロジェクト全体のドキュメントを生成できます。 * プラグイン [#va9abf2d] - [[Apache Maven Compiler Plugin – Usage>https://maven.apache.org/plugins/maven-compiler-plugin/usage.html]] - [[Apache Maven JAR Plugin – Usage>https://maven.apache.org/plugins/maven-jar-plugin/usage.html]] - [[Apache Maven Resources Plugin - Usage>https://maven.apache.org/plugins/maven-resources-plugin/usage.html]] - [[Maven JXR Plugin – Usage>https://maven.apache.org/jxr/maven-jxr-plugin/usage.html]] - [[Apache Maven PMD Plugin – Plugin Documentation>https://maven.apache.org/plugins/maven-pmd-plugin/plugin-info.html]] -- [[Apache Maven PMD Plugin – Usage>https://maven.apache.org/plugins/maven-pmd-plugin/usage.html]] -- [[java - Maven PMD plug-in not generating a report with 'mvn site' command or 'pmd:pmd' - Stack Overflow>http://stackoverflow.com/questions/28775835/maven-pmd-plug-in-not-generating-a-report-with-mvn-site-command-or-pmdpmd]] 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: - [[FindBugs Maven Plugin – Introduction>https://gleclaire.github.io/findbugs-maven-plugin/]] Status: Since Findbugs is no longer maintained, please use Spotbugs which has a Maven plugin. It is located at here. - [[SpotBugs>https://spotbugs.github.io/]] SpotBugs is a program which uses static analysis to look for bugs in Java code. -- [[SpotBugs Maven プラグインの使い方 — spotbugs 4.0.0 ドキュメント>https://spotbugs.readthedocs.io/ja/latest/maven.html]] この章では,Maven プロジェクトに SpotBugs を統合する方法について説明します。 - [[SpotBugs Maven Plugin – Introduction>https://spotbugs.github.io/spotbugs-maven-plugin/index.html]] SpotBugs looks for bugs in Java programs. - [[Apache Maven Clean Plugin – Usage>https://maven.apache.org/plugins/maven-clean-plugin/usage.html]] - [[Apache Maven Project Info Reports Plugin – Usage>https://maven.apache.org/plugins/maven-project-info-reports-plugin/usage.html]] -- [[Maven: Report plugin org.apache.maven.plugins:maven-project-info-reports-plugin has an empty version - Stack Overflow>http://stackoverflow.com/questions/18734650/maven-report-plugin-org-apache-maven-pluginsmaven-project-info-reports-plugin]] - [[Apache Maven Site Plugin – Introduction>https://maven.apache.org/plugins/maven-site-plugin/]] - [[Taglist Maven Plugin - Usage>http://www.mojohaus.org/taglist-maven-plugin/usage.html]] * [[Jenkins]] [#k2e8c36e] - [[Jenkinsで静的解析・テスト結果やらのレポートを生成するMavenの設定 - Qiita>http://qiita.com/digdagdag/items/39e31f3e3093e511fbce]] Jenkinsに静的解析、テスト結果をまとめてレポートしてもらう為のMaven設定を記したもの。 - [[Mavenで静的解析を実行する - Qiita>https://qiita.com/kazokmr/items/8dc9182ea638b78ab7b6]] 静的解析をverifyフェーズで実行している理由 これはOpenCloverのカバレッジ取得の仕組みが原因で、testフェーズ以前だと静的解析でエラーを検出してしまうため。 - [[JenkinsでDeclarative Pipelineを使ったアレコレ(2019/3現在) - Qiita>https://qiita.com/mas0061/items/7024169f306390aa1717]] Jenkins公式で開発されている warnings-na-plugin 。プラグインの ng はNext Generationなので、今後はこっちを開発していく方針っぽい。 - [[JenkinsからMavenを自動インストールした場合のProxy設定 - Qiita>https://qiita.com/kinunori/items/96cfbf26f661f9b383ea]] MavenのProxy設定を記述するsettings.xmlのパス 例:Maven名をamatsukazeとした場合 /var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/amatsukaze/conf/settings.xml * 関連 [#a7554c57] #taglist(tag=Maven)