Mavenにはローカルリポジトリのビルド結果(~/.m2/repository/
の下にアーチファクトがインストールされています)が格納されていますが、src
の隣のtarget
フォルダにコンパイルされたクラスが出力されます。ターゲットフォルダとローカルリポジトリ
ローカルリポジトリの内容とtarget
フォルダの内容に違いはありますか?
Mavenにはローカルリポジトリのビルド結果(~/.m2/repository/
の下にアーチファクトがインストールされています)が格納されていますが、src
の隣のtarget
フォルダにコンパイルされたクラスが出力されます。ターゲットフォルダとローカルリポジトリ
ローカルリポジトリの内容とtarget
フォルダの内容に違いはありますか?
これらは完全に異なり、混同しないでください。
target
はビルドディレクトリを表します。つまり、ソースからビルド中に生成されたすべての一時ファイルがそこに終わります。特に、メインとテストのJavaソースのコンパイル済みクラスがありますが、you'll also find lots of things in there(生成されたソースファイル、フィルタされたファイルなど)が見つかります。重要なことは、このフォルダに含まれるものはすべて本質的に一時的なものであるということです。 mvn clean
を実行していつでも削除して、次のビルドが(または少なくともはになるはずです)うまく動作することを確認してください。 target
の下に生成されたすべてのファイルとフォルダは、プロジェクトの成果物を作成する単一の目的を果たします。たとえば、jar
パッケージ化のMavenプロジェクトは、jar
という拡張子を持つits final nameで構成され、コンパイルされたJavaクラスを含む単一の主要な成果物を持ちます。最終的な名前は、POM内で設定されたカスタム名、またはプロジェクトのMaven coordinatesから派生したデフォルト名です。このようなプロジェクトには、テストJARやソースJARなど、追加のアーチファクトが追加されることもあります。
ローカルリポジトリにはアーティファクトのみが含まれています。そこには一時ファイルはありません。 mvn install
の実行時にインストールされるものは、厳密にはMavenプロジェクトの生成物、つまり最終製品とプロジェクトのPOMファイルです。それらを作成するのに役立つものはすべてローカルのリポジトリに入れられず、プロジェクトのビルドは決してそこに一時的なものを入れてはいけません。ローカルリポジトリはMavenリポジトリであり、厳密な命名規則に従っていることに注意してください。グループIDがmy.groupid
、アーチファクトIDがmy-artifactid
、バージョンが1.0
の場合は、my/groupid/my-artifactid/1.0
フォルダにインストールされます。 POMファイルとその他すべての成果物を見つけることができます。成果物そのものの名前を上書きすることはできません。a classifierが追加されたJARプロジェクトの場合はmy-artifactid-1.0.jar
になります。
これは、一般に混乱の元である:target
フォルダの下に生成される主アーティファクトファイルの名前は、完全にインストールされたとき、それはローカルリポジトリに有すること名前は異なる、またはリモートリポジトリにあります配備されたとき最初のものは制御することができますが、後者はリポジトリの名前付けスキームによって定義されます。リポジトリの名前は、座標から計算されます。
要約:target
には、プロジェクトの成果物(メインのJAR、ソース、Javadoc、つまりそのプロジェクトによって展開され、リリースされることになっているすべてのもの)を作成するビルド中に、ローカル・リポジトリー(およびリモート・リポジトリー)には、成果物そのもののみが含まれます。
あなたが本当に心配している場合は、module.jar
の生成に関してはあまりありません。生成された.jarファイルは同じです。コードを再コンパイルすると、/target
フォルダは消去されますが、.m2
は消去されません。
/target
フォルダは、一般に、コンパイルされたソースクラス/target/classes
と/target/generated-source
などとmodule.jar
で構成されていますが、
一方ローカル~.m2/repository
が必要な場合にそのモジュールを再構築するために、そのモジュールのpom.xml
と全てコンフィグ(repositories
、dependencies
など)と共にmodule.jar
から成ります。