maven 坐标

世界上任何一个构件都可以使用Maven坐标唯一标识,Maven坐标的元素包括groupId、artifactId、version、packageing、classfier。

Maven内置了Maven仓库:http://repo1.maven.org/maven2


<groupId>org.sonatype.nexus</group>
       <artifactId>nexus-indexer</artifactId>
       <version>2.0.0</version>
      <packaging>jar<packaging>
        groupId:定义当前Maven项目类属于的实际项目,Maven项目与实际项目不一定是一对一的关系。比如SpringFramework这一实际
项目,其对应的Maven项目会有很多,如Spiring-core、Spring-context等,这是由于Maven中模块的概念,因此,一个实际的项目往往
会被划分成多个模块。其次,groupId不应该对应项目隶属的组织或公司。原因很简单,一个组织下会有多个实际项目,如果groupId只
定义到组织级别,而后面的artifactId只能定义Maven项目(模块),那么实际项目这个层将难以定义。
        artifactId:该元素定义实际项目中的一个Maven项目(模块),推荐做法是使用实际项目名称作为artifactId的前缀,比如例子中的
nexus-indexer,默认情况下,Maven生成的构件,其文件名会默认以artifactId作为开头,使用实际项目名称作为前缀之后,就能方便的
从一个项目的文件夹下面找到一组构件。
      version:该元素定义Maven项目当前所处的版本,如上例中版本是2.0.0,Maven定义了一套完整的版本规范,以及快照(SNAPSHOT)
的概念,后续会详细进行介绍。
      packaging:该元素定义了Maven的打包方式。首先,打包方式通常与所生成构件的文件扩展名对应,如例子中的packaging为jar,
最终的文件名是nexus-indexer-2.0.2.jar,而使用war打包方式的Maven项目,最终生成的构件会有一个.war文件,不过这不是绝对的。
其次,打包方式会影响到构件的生命周期,比如jar打包和war打包会使用不同的命令。最后不定义packaging的时候,Maven会使用
默认的值jar.
      classifier:该元素i用来定义构件输出的一些附属构件。附属构件与主构件对应。如上列中的主构件为nexus-indexer-2.0.0.jar,
该项目可能还会通过使用一些插件生成如nexus-indexer-2.0.0-javadoc.jar、nexus-indexer-2.0.0-sources.jar这样一些附属构件,其
包含了java文档与源代码。这时候javadoc与sources就是这两个附属构件的classifier。这样附属构件也就拥有了自己 唯一的坐标。
不能直接定义项目的classifier,因为附属构件不是由项目默认生成的,而是由附加的插件帮助生成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值