Maven」タグアーカイブ

Maven2でローカルリポジトリを指定してビルドする

コマンド引数に-Dmaven.repo.local=ディレクトリを追加する。
1環境で複数ソースのビルドをするときとかは、
専用にローカルリポジトリを指定してあげる。

mvn package -Dmaven.repo.local=ディレクトリ

ちなみに、デフォルトのローカルリポジトリは「.m2/settings.xml」で指定すればOK

Mavenで開発中のバージョンを追う(jarファイルの更新日でDLの判断する)

・SNAPSHOTバージョン

 

SNAPSHOTバージョンとは、ある目標のバージョンに向けて現在進行形で開発が進むバージョンのことです。
以下の書式で表します。

<バージョン番号>-SNAPSHOT

例えば、”1.0-SNAPSHOT”とはバージョン1.0の開発途中のバージョンになります。
SNAPSHOTバージョンを依存ライブラリに指定した場合、Mavenは通常のバージョン指定とは異なる動きをします。
通常のバージョン指定の場合、一旦ローカルリポジトリに指定されたバージョンのライブラリがダウンロードされると、ずっとそれが参照されます。
一 方、SNAPSHOTは開発が現在進行形で進められているので、その内容は日々アップデートされていきます。Mavenは一旦ローカルリポジトリに取り込 んだ後でも、もしもリモートリポジトリにあるライブラリのファイル更新日付がローカルよりも新しい場合、ローカルのライブラリファイルをリモートのもので 上書きします。
サブプロジェクト単位で複数のチームに分かれて共同作業を行う場合、常に他のチームの最新の開発成果物(Mavenアーティファクト)を自分のプロジェクトに取り込んで参照することができます。

http://www7.atwiki.jp/gaoqiao1/pages/8.html

・バージョンレンジ(Version Range)

今度は正式リリースされたライブラリをディペンデンシーに指定する場合を考えます。たとえ正式リリースされたライブラリであったとしても、バグフィックスや機能追加・変更によるバージョンアップは頻繁に行われます。
依存するライブラリのバージョンを自動的に追跡するしくみがバージョンレンジ(Version Range)と呼ばれる機能です。
以下のような書式になります。

[1.0,)

こ の例ではバージョン1.0以上の最新のバージョンに依存するようになります。例えばローカルリポジトリにバージョン1.0が置かれているときに、リモート リポジトリに最新の1.0.1が公開されたとします。すると次回からのビルドでは、1.0.1が自動的にダウンロードされて参照されるようになります。 (※厳密には、settings.xmlのupdatePolicyによって更新タイミングが変わってきます。)
バージョンレンジは一見とても便利に思えます。
し かし自動更新の際、開発者に対して何の確認も行われずにバージョンアップが行われてしまうので、開発者自身そのことに気がつかないこともあります。ある日 突然ビルドがうまくいかなくなった、あるいは開発中のプログラムの動作がおかしくなった・・・そして苦労した挙げ句、結局知らず知らずのうちに行われた依 存ライブラリのバージョンアップが原因だったということにもなりかねません。
バージョンレンジの利用は注意して行うべきでしょう。