将java maven项目组件解压缩为单独的项目

时间:2012-05-11 18:16:41

标签: java maven project-management maven-3

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

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

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

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

1 个答案:

答案 0 :(得分: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上托管源代码但没有自定义域名)
  • 的groupId:
    • 使用包名称的开头,例如com.mycompany.myproject
    • 通常对单个VCS存储库中的所有Maven项目使用相同的groupId
  • artifactId:确保它足够独特,因为它将是jar文件名的开头,例如: myCompany的-myproject的-myComponent的
  • 设置CI服务器,例如Jenkins
    • 确保CI服务器由专用系统用户运行
    • 将必要的凭据添加到CI用户的settings.xml文件
    • 为“clean install”配置作业
    • 配置发布库的作业(Jenkins有一个特殊的插件来支持Maven版本)
  • 考虑将你的jar变成OSGi包