美文网首页
maven best practice of naming

maven best practice of naming

作者: Salt_Light | 来源:发表于2019-09-30 10:51 被阅读0次

    groupId

    template com.company.projectName
    eg com.by.study

    artifactId

    如果是主工程
    template projectName
    eg study

    如果是子模块
    template projectName-moduleName
    eg study-base

    version

    <主版本>.<次版本>.<增量版本>-<限定符>

    主版本:主要表示大型架构变更
    次版本:主要表示特性的增加
    增量版本:主要服务于bug修复
    限定符:如alpha、beta等等是用来表示里程碑
    当然不是每个项目的版本都要用到这些4个部分,根据需要选择性的使用即可。在此基础上Maven还引入了SNAPSHOT的概念,用来表示活动的开发状态,由于不涉及坐标规划,这里不进行详述。不过有点要提醒的是,由于SNAPSHOT的存在,自己显式地在version中使用时间戳字符串其实没有必要。

    Classifier

    Classifier可能是最容易被忽略的Maven特性,但它确实非常重要,我们也需要它来帮助规划坐标。设想这样一个情况,有一个jar项目,就说是dog-cli-1.0.jar吧,运行它用户就能在命令行上画一只小狗出来。现在用户的要求是希望你能提供一个zip包,里面不仅包含这个可运行的jar,还得包含源代码和文档,换句话说,这是比较正式的分发包。这个文件名应该是怎样的呢?dog-cli-1.0.zip?不够清楚,仅仅从扩展名很难分辨什么是Maven默认生成的构件,什么是额外配置生成分发包。如果能是dog-cli-1.0-dist.zip就最好了。这里的dist就是classifier,默认Maven只生成一个构件,我们称之为主构件,那当我们希望Maven生成其他附属构件的时候,就能用上classifier。常见的classifier还有如dog-cli-1.0-sources.jar表示源码包,dog-cli-1.0-javadoc.jar表示JavaDoc包等等。制作classifier的方式多种多样,其中最重要的一种是使用Maven Assembly Plugin,感兴趣的读者可以进一步研究。

    reference

    http://www.infoq.com/cn/news/2010/12/xxb-maven-1
    http://wiki.jikexueyuan.com/project/maven/snapshots.html
    http://www.infoq.com/cn/minibooks/maven-in-action

    相关文章

      网友评论

          本文标题:maven best practice of naming

          本文链接:https://www.haomeiwen.com/subject/yiucpctx.html