【问题标题】:difference of artifactId and name in maven POMmaven POM中artifactId和name的区别
【发布时间】:2016-11-30 08:19:51
【问题描述】:

我是 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>

【问题讨论】:

  • 这些答案对您有帮助吗?如果是这样,你可以accept an answer

标签: java maven pom.xml


【解决方案1】:

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

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

来自Maven documentation

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • +1 - 我讨厌简单地说明它是什么的文档:Artifact ID 是一个标识 Artifact 的 ID。更好的是为什么?为什么会有工件 ID?团队为什么要创建它?发生了什么问题,Artifact ID 如何成为解决方案?
    【解决方案3】:

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

    例如:

    rsts ear 文件的这个 pom 文件定义:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      • 2014-07-08
      • 1970-01-01
      • 2019-02-24
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多