什么是Maven神器?

Max*_*ler 325 java build maven

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

Stu*_*rra 288

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

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

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

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

  • 想想神器究竟是什么.埃及人创造了精美的文物,如陶器.但是,如果你手里拿着一个埃及碗,除非你在讨论它是一件神器(事实),否则你不会把它称为"神器".你会把它称为碗.他们从碗里吃了.他们没有吃掉神器. (46认同)
  • 工件基本上是一个JAR文件吗?那么,joda时间jar文件可以称为joda工件,hibernate jar可以称为hibernate工件等吗? (5认同)
  • 我认为@cbmeeks的意思是“工件”不是“事物”的名称,它是构建过程中的“角色”。如果Maven生产了任何东西,并且将其赋予特殊的Maven _coordinates_标识,则任何东西都可以归类为“工件”。 (3认同)

Ken*_*Liu 109

在一般软件术语中," 工件 "是由软件开发过程产生的东西,无论是软件相关文档还是可执行文件.

在Maven的术语中,工件是所得的行家构建的输出,通常是jarwar或其他可执行文件.maven中的工件由groupId,artifactId和version的坐标系标识.Maven使用groupId,artifactIdversion识别依赖关系,建立并运行代码所需的(通常是其他JAR文件).


Lai*_*son 25

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

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

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

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

Maven Artifact是一个Java类,它表示由存储库管理器取消引用到存储库管理器工件中的"名称"类型.当在这个意义上使用的,Artifact只是由这些零件作为一个荣耀的名字groupId,artifactId,version,scope,classifier等.

把它们放在一起:

  • 你的Maven项目可能依赖于Artifact它的<dependency>元素.
  • Maven Artifact通过指示存储库管理器向其发送一些与内部Artifacts 对应的存储库管理器工件,与存储库管理器交互以将这些解析为文件.
  • 最后,在解决之后,Maven构建您的项目并生成Maven工件.您可以选择"把它变成"由仓库管理器神器,反过来,用你喜欢的任何工具,它有足够的协调信息,其他人可以找到它,当发送到存储库管理,他们要求仓库管理它.

希望有所帮助.


Mar*_*lze 23

Maven组织其项目构建.

一个artifact在Maven是由Maven项目生成的资源.每个maven项目都可以有一个artifact像a jar, war, ear
项目.项目的配置文件"pom.xml"描述了工件是如何构建的,如何运行单元测试等.通常,使用maven构建的软件项目由许多构建工件的maven项目组成(例如jar )构成产品.
例如

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
Run Code Online (Sandbox Code Playgroud)

Maven工件不仅限于java资源.您可以生成所需的任何资源.例如文档,项目站点,zip-archives,本机库等.

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


Vde*_*deX 18

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

  • 组ID(如com.your.package),
  • 工件ID(只是一个名称),和
  • 版本字符串.
    三者一起唯一地识别工件.

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


duf*_*ymo 9

工件是JAR或存储在存储库中的东西.Maven将它们取出并构建您的代码.


bma*_*ies 8

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

  1. 构成Maven的插件本身.
  2. 代码所依赖的依赖关系.
  3. 构建产生的任何东西都可以被其他东西消耗掉.

工件存放在存储库中.