什么是人工制品,为什么Maven需要它?
maven-metadata.xml
和的文件<artifactId>-<version>.pom
。这些文件都具有一些未记录的架构和语义。
什么是人工制品,为什么Maven需要它?
maven-metadata.xml
和的文件<artifactId>-<version>.pom
。这些文件都具有一些未记录的架构和语义。
Answers:
工件是一个文件,通常是一个JAR文件,已被部署到Maven存储库。
Maven构建会生成一个或多个工件,例如已编译的JAR和“源” JAR。
每个工件都有一个组ID(通常是一个反向域名,例如com.example.foo),一个工件ID(只是一个名称)和一个版本字符串。这三个一起唯一地识别工件。
项目的依赖关系被指定为工件。
用一般的软件术语来说,“ 工件 ”是由软件开发过程产生的,无论是与软件有关的文档还是可执行文件。
在Maven的术语中,工件是所得的行家构建的输出,通常是jar
或war
或其他可执行文件。Maven中的工件由groupId,artifactId和version的坐标系标识。Maven使用groupId
,artifactId
以及version
找出需要建立依赖关系(通常是其他jar文件),并运行代码。
我知道这是一个古老的话题,但我想补充一些细微之处。
有Maven工件,存储库管理器工件,然后还有Maven Artifact
。
就像其他评论者/响应者所说的那样,Maven工件:通过构建Maven项目可以解决这个问题。那可能是一个.jar
文件,或者一个文件,或者一个.war
文件,或者一个.zip
文件,或者.dll
您拥有什么。
存储库管理器工件是由存储库管理器很好地管理的东西。基本上,存储库管理器是针对软件可执行文件和库的高性能命名服务。存储库管理器不在乎其工件来自何处(也许它们来自Maven构建,本地文件,Ant构建或手动编译...)。
Maven Artifact
是Java类,它表示“名称”的类型,该名称由存储库管理器解引用到存储库管理器工件中。当在这个意义上使用的,Artifact
就是这样的部件作为由一个荣耀的名字groupId
,artifactId
,version
,scope
,classifier
等。
放在一起:
Artifact
通过其<dependency>
元素依赖于多个。Artifact
通过指示存储库管理器向其发送一些与内部Artifact
s 相对应的存储库管理器工件,与存储库管理器进行交互以将这些s 解析为文件。希望能有所帮助。
mvn install
,人们会试图弄清楚该条目中要放什么。所以罐子的全名是输入什么-DartifactId=YOUR_ARTIFACT_ID
,对吗?带有版本和.jar的完整jar文件名?似乎就是您在说的内容,但实际上可以帮助一些人。其他答案与此差不多,但我认为是您最好的。
Maven在项目中组织其构建。
一个artifact
在Maven是由Maven项目生成的资源。每个maven项目都可以有一个artifact
类似
的项目jar, war, ear
,等等
。项目的配置文件"pom.xml"
描述了构件的构建方式,单元测试的运行方式等。通常,使用maven构建的软件项目由许多构建构件的maven项目组成(例如jars)。 )构成产品。
例如
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
。
问:什么是Maven中的工件?
ANS:ARTIFACT是JAR(WAR或EAR),但也可能是其他东西。每个工件都有
问:为什么Maven需要它们?
回答:Maven用于使它们可用于我们的应用程序。
-DartifactId=YOUR_ARTIFACT_ID
在运行mvn install时应该输入的内容,只是一个建议:)
为了行事,将构建过程安排为一组工件。工件包括:
工件存放在存储库中。