maven 坐标

ゝ一世哀愁。 2022-07-15 07:42 279阅读 0赞

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

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

org.sonatype.nexus

  1. <artifactId>nexus-indexer</artifactId>
  2. <version>2.0.0</version>
  3. <packaging>jar<packaging>
  4. **groupId**:定义当前Maven项目类属于的实际项目,Maven项目与实际项目不一定是一对一的关系。比如SpringFramework这一实际

项目,其对应的Maven项目会有很多,如Spiring-core、Spring-context等,这是由于Maven中模块的概念,因此,一个实际的项目往往

会被划分成多个模块。其次,groupId不应该对应项目隶属的组织或公司。原因很简单,一个组织下会有多个实际项目,如果groupId只

定义到组织级别,而后面的artifactId只能定义Maven项目(模块),那么实际项目这个层将难以定义。

  1. **artifactId**:该元素定义实际项目中的一个Maven项目(模块),推荐做法是使用实际项目名称作为artifactId的前缀,比如例子中的

nexus-indexer,默认情况下,Maven生成的构件,其文件名会默认以artifactId作为开头,使用实际项目名称作为前缀之后,就能方便的

从一个项目的文件夹下面找到一组构件。

  1. **version**:该元素定义Maven项目当前所处的版本,如上例中版本是2.0.0Maven定义了一套完整的版本规范,以及快照(SNAPSHOT

的概念,后续会详细进行介绍。

  1. **packaging**:该元素定义了Maven的打包方式。首先,打包方式通常与所生成构件的文件扩展名对应,如例子中的packagingjar,

最终的文件名是nexus-indexer-2.0.2.jar,而使用war打包方式的Maven项目,最终生成的构件会有一个.war文件,不过这不是绝对的。

其次,打包方式会影响到构件的生命周期,比如jar打包和war打包会使用不同的命令。最后不定义packaging的时候,Maven会使用

默认的值jar.

  1. **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,因为附属构件不是由项目默认生成的,而是由附加的插件帮助生成。

发表评论

表情:
评论列表 (有 0 条评论,279人围观)

还没有评论,来说两句吧...

相关阅读

    相关 maven坐标详解

    上一篇文章,总体介绍了maven,今天我就maven的坐进行详细介绍。在maven的pom.xml文件中: 1、maven基本坐标   maven坐标元素包括groupI

    相关 maven坐标

    在maven项目中,每个构建都有其唯一的坐标,这些坐标用于唯一标识该构建,坐标主要由grouId,artifactId,version,packaging标识。 group

    相关 Maven讲解之 坐标

    Maven讲解之 坐标 概念 在一个平面中使用 x、y 两个向量可以唯一的确定平面中的一个点。 在空间中使用 x、y、z 三个向量可以唯一的确定空间中的

    相关 Maven--坐标详解

    Maven坐标详解 那 Maven 是通过什么方式精确地找到用户想要的构件呢? 其实,前面已经介绍过,那就是通过构件的坐标去唯一定位查找。反过来也就是说,在 Maven