1

我是 Maven 新手,并决定从我最近开始开发的项目开始。该项目是一个 Java 库,它解析用自然语言编写的单位转换查询,并执行从自然语言查询中解释出来的单位转换。

对于这个项目,我需要一个用于 Java 的变形库(复数/单数化单词),在考虑了一些选项后,我决定开发自己的。事实证明,有些人对单独使用这种变形功能产生了兴趣。

所以问题是,将提供变形功能的类(在我的单位转换项目中的一个单独的包中)拆分成一个单独的新 Maven 项目的最佳方法是什么,在某种公共 Maven 存储库中发布这个变形库,并将其指定为我的单位转换库的依赖项。这样,任何想要使用变形库的人都可以通过将其作为自己项目的依赖项来实现。

请注意,我的问题包括“在 Maven 存储库中发布一个库以便它可以成为其他项目的依赖项”的部分。我对 Maven 完全陌生,所以我真的没有掌握整个事情。我只是限制自己设置自己项目的依赖项,构建,运行等。

4

1 回答 1

1

对于开源:

  • 提供源代码,例如在 sourceforge.net
  • 确保您的 POM 继承自(直接或间接):

  <parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
  </parent>

对于封闭源:

一般建议:

  • 对于包名称以反向域名开头,例如。
    • org.myproject.mycomponent(如果您有此项目的自定义域)
    • com.mycompany.myproject.mycomponet(如果您的公司拥有域 mycompany.com)
    • net.sourceforge.myproject.mycomponent(如果您将源代码托管在 myproject.sourceforge.net 并且没有自定义域)
  • 组号:
    • 使用包名的开头,例如 com.mycompany.myproject
    • 通常对单个 VCS 存储库中的所有 Maven 项目使用相同的 groupId
  • artifactId:确保它足够独特,因为它将是 jar 文件名的开头,例如 mycompany-myproject-mycomponent
  • 设置 CI 服务器,例如 Jenkins
    • 确保 CI 服务器由专门的系统用户运行
    • 将必要的凭据添加到 CI 用户的 settings.xml 文件中
    • 为“全新安装”配置作业
    • 配置发布库的作业(Jenkins 有一个特殊的插件来支持 Maven 发布)
  • 考虑把你的 jar 变成一个 OSGi 包
于 2012-05-11T19:21:44.270 回答