什么是Maven神器?

时间:2010-03-21 14:55:06

标签: java build maven

什么是神器?为什么Maven需要它?

9 个答案:

答案 0 :(得分:274)

工件是一个文件,通常是JAR,可以部署到Maven存储库。

Maven构建会生成一个或多个工件,例如已编译的JAR和“sources”JAR。

每个工件都有一个组ID(通常是反向域名,如com.example.foo),工件ID(只是一个名称)和一个版本字符串。三者一起唯一地识别工件。

项目的依赖项被指定为工件。

答案 1 :(得分:102)

在一般软件术语中,“artifact”是由软件开发过程产生的,无论是软件相关文档还是可执行文件。

在Maven术语中,工件是maven构建的结果输出,通常是jarwar或其他可执行文件。 maven中的工件由groupId,artifactId和version的坐标系标识。 Maven使用groupIdartifactIdversion来识别构建和运行代码所需的依赖项(通常是其他jar文件)。

答案 2 :(得分:23)

Maven在项目中组织其构建。

maven中的artifact是由maven项目生成的资源。每个maven项目只能有一个artifact,如jar, war, ear等 项目的配置文件"pom.xml"描述了工件的构建方式,单元测试的运行方式等。 通常,使用maven构建的软件项目由许多构建产品的构件(例如罐子)的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-archives,本地库等。

每个maven项目都有一个由[groupId, artifactId, version]组成的唯一标识符。当maven项目需要另一个项目的资源时,使用上述标识符在其pom.xml中配置依赖项。然后,Maven会在触发构建时自动解析依赖项。然后,所需项目的工件将从本地repository加载,这是您用户家中的简单目录,或者是您pom.xml中指定的其他(远程)存储库。

答案 3 :(得分:23)

我知道这是一个古老的线索,但我想添加一些细微差别。

有Maven工件,存储库管理器工件,然后有Maven Artifact

Maven工件就像其他评论者/响应者所说的那样:通过构建Maven项目来实现这一点。这可能是.jar文件,.war文件,.zip文件,.dll或您拥有的文件。

存储库管理器工件是由存储库管理器管理的。存储库管理器基本上是软件可执行文件和库的高性能命名服务。存储库管理器不关心其工件的来源(可能来自Maven构建,本地文件,Ant构建或手工编译......)。

Maven Artifact是一个Java类,它表示由存储库管理器取消引用到存储库管理器工件中的“名称”类型。在这个意义上使用时,Artifact只是一个美化的名称,由groupIdartifactIdversionscope,{{1}等部分组成等等。

把它们放在一起:

  • 您的Maven项目可能依赖于classifierArtifact元素。{/ li>
  • Maven与存储库管理器交互,通过指示存储库管理器向其发送一些与内部<dependency>对应的存储库管理器工件,将这些Artifact解析为文件。
  • 最后,在解决之后,Maven构建您的项目并生成Maven工件。您可以选择“转换为”存储库管理器工件,反过来,使用您喜欢的任何工具,将其发送到存储库管理器,并提供足够的协调信息,以便其他人他们时可以找到它它的存储库管理器。

希望有所帮助。

答案 4 :(得分:16)

问。什么是maven中的神器?
ANS:ARTIFACT是一个JAR,(WAR或EAR),但它也可能是其他东西。每个工件都有,

  • 组ID(如com.your.package),
  • 工件ID(只是名称)和
  • 版本字符串。这三个人共同识别人工制品。

问:为什么Maven需要它们?
Ans:Maven用于使它们可用于我们的应用程序。

答案 5 :(得分:9)

工件是JAR或存储在存储库中的东西。 Maven将它们排除并构建您的代码。

答案 6 :(得分:8)

对于maven,构建过程被安排为一组工件。文物包括:

  1. 组成Maven的插件。
  2. 代码所依赖的依赖关系。
  3. 你的构建产生的任何东西都可以被其他东西消耗掉。
  4. 工件存放在存储库中。

答案 7 :(得分:4)

通常我们会谈论关于群组ID,工件ID和快照版本的Maven术语

组ID:项目组的标识 工件ID:项目的标识 快照版本:项目使用的版本。

神器只不过是一些像Jar,War,Ear ......这样的结果文件。

简单地说神器只不过是包裹。

答案 8 :(得分:0)

通常,当您创建一个Java项目时,您想使用另一个Java项目中的功能。 例如,如果您的项目要发送一封电子邮件,则无需创建所有必要的代码即可。您可以带一个Java库来完成大部分工作。 Maven是一个构建工具,可以帮助您完成多项任务。这些任务之一是自动将这些外部依赖关系或工件带到您的项目中(仅在XML文件中进行一些配置)。 当然,Maven有更多细节,但是,对于您的问题,这就足够了。 而且,当然,Maven也可以将项目构建为可在其他项目中使用或导入的工件(通常是jar文件)。

此网站上有几篇有关Maven的文章:

https://connected2know.com/programming/what-is-maven/

https://connected2know.com/programming/maven-configuration/