【问题标题】:groupId of maven projects hosted on GitHub托管在 GitHub 上的 Maven 项目的 groupId
【发布时间】:2013-11-24 08:30:06
【问题描述】:

我在 GitHub 上托管了一个开源 maven 项目。假设网址是https://github.com/foo/bar

现在我想将它上传到 Sonatype OSS Maven 存储库。我检查了他们对 groupId (https://docs.sonatype.org/display/Repository/Choosing+your+Coordinates) 有严格的规定。

groupId 将在所有项目中唯一标识您的项目,因此我们需要强制实施命名架构。它必须遵循包名称规则,这意味着它必须至少是您控制的域名,并且您可以根据需要创建任意数量的子组。例如。 org.apache.maven, org.apache.commons 确定 groupId 粒度的一个好方法是使用项目结构。也就是说,如果当前项目是一个多模块项目,它应该将一个新的标识符附加到父级的 groupId。 例如。 org.apache.maven、org.apache.maven.plugins、org.apache.maven.reporting

问题是,对于托管在 GitHub 上的项目,正确的 groudId 是什么?

由于用户生成的网站有 foo.github.io 域,我至少有以下两个选择:

  • com.github.foo
  • io.github.foo

【问题讨论】:

    标签: java maven github sonatype


    【解决方案1】:

    在名称中使用带有托管站点的 groupId 是一种流行的选择。在http://search.maven.org 上搜索

    • net.sf
    • 源锻造
    • 谷歌代码
    • github

    虽然最好使用您真正拥有的域,但使用 groupId 中的托管站点是一个明智的后备方案。您应该尝试确保您选择的名称与托管公司本身无关(例如 com.google),而是与托管网站(例如 com.googlecode)相关联,以便清楚地表明您是该网站上的项目而不是基础公司的项目。

    【讨论】:

    • 所以io.github.foocom.github.foo 好?
    • 没有更好,但更现代 :) 使用你更喜欢的东西。
    【解决方案2】:

    我认为您应该在 groupId 中使用自己的域,而不是 github。* - 这意味着该项目归 Github 所有。

    【讨论】:

    • 如果你使用 com.github,我会同意。但是 afaik io.github 是为项目保留的。
    【解决方案3】:

    虽然许多 Maven 项目的 groupIds 源自网络域,但它们源自启动项目的人的域 - github 只是一种方便的服务,可让其他人访问您的项目。

    因此,您应该选择一个特定于您的 ID just like all the other projects there

    【讨论】:

      【解决方案4】:

      另一个选项是foo.bar 作为 groupId,但 groupId 和 github 也不错。

      【讨论】:

        猜你喜欢
        • 2012-12-10
        • 1970-01-01
        • 2018-01-20
        • 2014-08-27
        • 2012-09-09
        • 1970-01-01
        • 2018-09-22
        • 2011-12-14
        • 2017-01-18
        相关资源
        最近更新 更多