アーティファクトとは何ですか?なぜMavenはそれを必要とするのですか?
maven-metadata.xml
です<artifactId>-<version>.pom
。たとえば、アーティファクトにはと呼ばれるファイルとと呼ばれるファイルが含まれている必要があります。これらのファイルには両方とも、文書化されていないスキーマとセマンティクスがあります。
アーティファクトとは何ですか?なぜMavenはそれを必要とするのですか?
maven-metadata.xml
です<artifactId>-<version>.pom
。たとえば、アーティファクトにはと呼ばれるファイルとと呼ばれるファイルが含まれている必要があります。これらのファイルには両方とも、文書化されていないスキーマとセマンティクスがあります。
回答:
アーティファクトは、Mavenリポジトリーにデプロイされるファイル(通常はJAR)です。
Mavenビルドは、コンパイルされたJARや「ソース」JARなどの1つ以上のアーティファクトを生成します。
各アーティファクトには、グループID(通常、com.example.fooのような逆ドメイン名)、アーティファクトID(名前だけ)、およびバージョン文字列があります。3つを合わせて、アーチファクトを一意に識別します。
プロジェクトの依存関係はアーティファクトとして指定されます。
一般的なソフトウェア用語では、「アーティファクト」は、ソフトウェア関連のドキュメントであっても実行可能ファイルであっても、ソフトウェア開発プロセスによって生成されるものです。
Mavenの用語では、アーティファクトは、Mavenビルドの結果の出力であり、通常はjar
、war
またはその他の実行可能ファイルです。Mavenのアーティファクトは、groupId、artifactId、およびversionの座標系によって識別されます。Mavenは、、、およびを使用してgroupId
、コードのビルドと実行に必要な依存関係(通常は他のjarファイル)を識別します。artifactId
version
私はこれが古いスレッドであることを知っていますが、いくつかのニュアンスを追加したかったのです。
Mavenアーティファクト、リポジトリマネージャーアーティファクト、そしてMavenがありますArtifact
。
Mavenアーティファクトは、他のコメンター/レスポンダーが言うとおりです。これは、Mavenプロジェクトをビルドすることによって生み出されるものです。それは、.jar
ファイル、.war
ファイル、.zip
ファイル、または、.dll
あなたが持っているものです。
リポジトリマネージャーアーティファクトは、リポジトリマネージャーによって管理されるものです。リポジトリマネージャーは、基本的にはソフトウェア実行可能ファイルとライブラリの高性能なネーミングサービスです。リポジトリマネージャーは、アーティファクトがどこから来たのかを気にしません(たぶん、それらはMavenビルド、ローカルファイル、Antビルド、または手作業のコンパイルから...)。
Maven Artifact
は、リポジトリマネージャーによってリポジトリマネージャーアーティファクトに逆参照される一種の「名前」を表すJavaクラスです。この意味で使用する場合、Artifact
このような部品で構成されただけの見せかけの名前でgroupId
、artifactId
、version
、scope
、classifier
などなど。
すべてをまとめるには:
Artifact
その<dependency>
要素としていくつかのに依存しています。Artifact
て、内部Artifact
のに対応するリポジトリマネージャーアーティファクトを送信するようにリポジトリマネージャーに指示することにより、これらのをファイルに解決します。お役に立てば幸いです。
mvn install
、人々はありますそのエントリに何を入れるかを理解しようとしています。したがって、jarの完全な名前はに入力するもの-DartifactId=YOUR_ARTIFACT_ID
です。それでよろしいですか?バージョンと.jarを含む完全なjarファイル名?あなたが言っていることのように思えますが、一部は本当に明示的になるのに役立ちます。他の答えはこれに近づきますが、私はあなたの答えを最もよく考えました。
Mavenは、ビルドインプロジェクトを編成します。
artifact
Mavenの中には、Mavenプロジェクトによって生成されたリソースです。各mavenプロジェクトには、のartifact
ような1つを含めることができますjar, war, ear
。
プロジェクトの構成ファイルに"pom.xml"
は、アーティファクトのビルド方法、ユニットテストの実行方法などが記述されています。 )製品を構成する。
例えば
Root-Project // produces no artifact, simply triggers the build of the other projects
App-Project // The application, that uses the libraries
Lib1-Project // A project that creates a library (jar)
Lib2-Project // Another library
Doc-Project // A project that generates the user documentation from some resources
MavenアーティファクトはJavaリソースに限定されません。必要なリソースを生成できます。たとえば、ドキュメント、プロジェクトサイト、zipアーカイブ、ネイティブライブラリなど。
各Mavenプロジェクトには、からなる一意の識別子があり[groupId, artifactId, version]
ます。Mavenプロジェクトが別のプロジェクトのリソースを必要とする場合、依存関係はpom.xml
上記の識別子を使用して構成されます。その後、ビルドがトリガーされると、Mavenが自動的に依存関係を解決します。次に、必要なプロジェクトのアーティファクトが、repository
ユーザーのホームにある単純なディレクトリであるローカルから、またはで指定された他の(リモート)リポジトリから読み込まれますpom.xml
。
Q. Mavenのアーティファクトとは何ですか?
ANS:ARTIFACTはJAR(WARまたはEAR)ですが、それ以外の場合もあります。各アーティファクトには、
Q.なぜMavenはそれらを必要とするのですか?
回答:Mavenを使用して、アプリケーションで使用できるようにします。
Mavenにとって、ビルドプロセスは一連のアーティファクトとして配置されます。アーティファクトには次のものがあります。
アーティファクトはリポジトリにあります。
通常、グループID、アーティファクトID、スナップショットバージョンについてMavenの用語を話します。
グループID:プロジェクトのグループのIDアーティファクトID:プロジェクトのIDスナップショットバージョン:プロジェクトで使用されるバージョン。
アーティファクトは、Jar、War、Earなどの結果ファイルにすぎません。
単にアーティファクトはパッケージにすぎないと言います。