アーティファクトとは何ですか。また、Mavenはなぜそれを必要としますか?
成果物は、Mavenリポジトリーにデプロイされるファイル(通常はJAR)です。
Mavenビルドは、コンパイル済みJARや「ソース」JARなど、1つ以上の成果物を生成します。
各成果物には、グループID(通常はcom.example.fooのような反転ドメイン名)、成果物ID(単なる名前)、およびバージョンストリングがあります。これら3つは一緒になってアーティファクトを一意に識別します。
プロジェクトの依存関係は成果物として指定されます。
一般的なソフトウェア用語では、 " アーティファクト "は、ソフトウェア関連のドキュメントでも実行可能ファイルでも、ソフトウェア開発プロセスによって生成されるものです。
Mavenの用語では、アーティファクトはMavenビルドの結果の出力であり、通常はjar
またはwar
またはその他の実行可能ファイルです。 Mavenの成果物は、groupId、artifactId、およびversionの座標系によって識別されます。 Mavenはコードのビルドと実行に必要な依存関係(通常は他のjarファイル)を識別するためにgroupId
、artifactId
、およびversion
を使用します。
私はこれが古代のスレッドであることを知っていますが、私はいくつかのニュアンスを加えたいと思いました。
Maven成果物、リポジトリー・マネージャー成果物があり、次にMaven Artifact
name__sがあります。
Mavenのアーティファクトは他のコメント投稿者や回答者の言うとおりです。それはMavenプロジェクトを構築することによって吐き出されるものです。それは.jar
ファイル、.war
ファイル、.Zip
ファイル、または.dll
、あるいはあなたが持っているものかもしれません。
リポジトリマネージャアーティファクトは、リポジトリマネージャによって管理されているものです。リポジトリマネージャは、基本的にソフトウェアの実行可能ファイルとライブラリ用の高性能なネームサービスです。リポジトリマネージャは、アーティファクトがどこから来たのかは気にしません(たぶんそれらはMavenビルド、ローカルファイル、Antビルド、あるいは手作業によるコンパイルなどから来ています)。
MavenのArtifact
name__は、リポジトリマネージャによってリポジトリマネージャアーティファクトに間接参照される一種の「名前」を表すJavaクラスです。この意味で使用される場合、Artifact
name__は、groupId
name__、artifactId
name__、version
name__、scope
name__、classifier
name__などの部分で構成される見せかけの名前です。
まとめると、
<dependency>
要素によっていくつかのArtifact
name__sに依存しています。Artifact
name__sに対応するリポジトリマネージャアーティファクトを送信するように指示することによって、リポジトリマネージャと対話してこれらのArtifact
name__sをファイルに解決します。それが役立つことを願っています。
Mavenは、ビルドをプロジェクトに編成します。
Mavenのartifact
は、mavenプロジェクトによって生成されたリソースです。各Mavenプロジェクトには、jar, war, ear
などのようにartifact
を1つだけ含めることができます。
プロジェクトの構成ファイル"pom.xml"
は、アーティファクトのビルド方法、単体テストの実行方法などを記述します。通常、mavenを使用したソフトウェアプロジェクトビルドは、アーティファクト(jarなど)をビルドする多くのmavenプロジェクトで構成されます。製品を構成します。
例えば。
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はそれらを私たちのアプリケーションで利用できるようにするために使われています。
アーティファクトはJARまたはリポジトリに格納したものです。 Mavenがそれらを取り出してあなたのコードをビルドします。
一言で言えば、ビルドプロセスはアーティファクトのセットとして配置されています。アーティファクトは次のとおりです。
成果物はリポジトリーにあります。
通常、グループID、アーティファクトID、およびスナップショットバージョンについて、Mavenの用語を使用しています。
グループID:プロジェクトのグループのIDアーティファクトID:プロジェクトのIDスナップショットのバージョン:プロジェクトで使用されているバージョン。
アーティファクトは、Jar、War、Earなどの結果ファイルに他なりません。
成果物はパッケージに他ならないと簡単に言います。