maven POM

时间:2016-07-26 15:26:35

标签: java maven pom.xml

我是maven的新手,我对artifactIdname之间的区别感到困惑。

我所知道的是artifactId是您正在创建的工件的名称。我知道artifactIdgroupId一起用于唯一标识工件。那么POM中的<name>目的是什么。就像我从网站上获得的pom一样,有artifactId,同时还有<name>

<groupId>org.sonatype.mavenbook.multi</groupId>
<artifactId>simple-parent</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>Multi Chapter Simple Parent Project</name>

3 个答案:

答案 0 :(得分:10)

你是正确的artifactId有助于识别项目。

name只是一个人类可读的“友好”名称。基本设置不需要它。

来自Maven documentation

  

artifactId :artifactId通常是项目所知的名称。虽然groupId很重要,但是组内的人很少会在讨论中提及groupId ...它与groupId一起创建了一个键,将该项目与世界上的其他项目分开(至少应该:)) 。与groupId一起,artifactId完全定义了工件库中的工件生命区。

答案 1 :(得分:6)

groupIdartifactIdversion形成此项目的复合唯一标识符(或coordinate)。这些值中的每一个都具有相当严格的命名约定,允许组织良好的组,工件和版本。

name只是项目的可读名称,不需要是唯一的或符合相同的约定(因此它可以包含空格和其他字符)。

答案 2 :(得分:1)

名称用于 maven 用于构建工件的项目,而 artifact-id 用于标识将要构建的工件。

例如:

rstsear文件的这个pom文件定义:

enter image description here

导致将 rsts-ear 项目导入 Eclipse:

enter image description here

但是在关系中创建了 rsts_ear 工件:

enter image description here

这意味着引用了工件 ID,而不是名称,以将工件作为另一个工件的一部分包含在构建中。

enter image description here