Maven2-坐标

什么是Maven坐标?

在生活中,每个城市,地点,都有自己独一无二的坐标,这样快递小哥才能将快递送到我们手上。
类似于现实生活,Maven的世界也有很多城市,那就是数量巨大的构件,也就是我们平时用的jar,war等文件。如果这些构件没有具体的省份,门牌号,那就只能挨家挨户的搜查了,于是Maven定义这样一组规则。世界上任何一个构件都可以使用Maven坐标唯一标识,Maven坐标元素包括:groupId,artifactID,version,packaging,classifier,当我们提供了这些信息后,Maven就会从中亚仓库中寻找相应的构建供我们使用。
我们开发自己的项目时,也要为其定义适当的坐标,以便其他Maven项目引用该项目生成的构建。

坐标元素详解

groupId

当前Maven项目隶属的实际项目,比如groupId为 org.sonatype.nexus,那么org.sonatype就表示一个组织,nexus表示这个组织下的实际项目

artifactId

该元素定义了实际项目中的一个maven项目,推荐做法将使用的实际项目名称作为artifactId的前缀,因为在默认情况下,Maven生成的构件,会以artifactId作为开头,这样可以方便需找实际构件。

version

该元素定义了Maven当前所处的版本

packaging(可选)

该元素定义了Maven项目打包的方式,打包方式会影响到构建的生命周期,默认为jar

classifier

该元素定义了构建输出的一些附属构件,与主构件对应,不能直接定义项目的classifier,因为附属构建不是项目直接生成的,而是由附加的插件帮助生成的。
比如,如果主构件为nexus-indexer-2.0.0.jar,那么可能会通过插件生成如nexus-indexer-2.0.0-javadoc.jar,nexus-indexer-2.0.0-sources.jar等,其中包含了java文档和源代码,这个时候javadoc和sources就是两个附属构建的classifier,这样附属构建也有了自己唯一的坐标。

坐标代码实例

现有一份pom.xml文档部分内容,我们可以看一下文档是如何利用Maven坐标的



4.0.0
com.xikunqu.account
account-email
Account Email
1.0.0-SNAPSHOT


    
        org.springframework
        spring-core
        2.5.6
    


    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            
                1.5
                1.5
            
        
    


  • 可以看到pom.xml文档中定义了该项目的groupId,artifactId,name和version,当构建后,就会生成该项目的jar包,此时,如其他项目要使用此项目,就可以通过坐标找到此jar包。
  • 还可以看到文档中还利用坐标声明了依赖和插件。

你可能感兴趣的:(Maven2-坐标)