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坐标的

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>com.xikunqu.account</groupId>
<artifactId>account-email</artifactId>
<name>Account Email</name>
<version>1.0.0-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>2.5.6</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin>
    </plugins>
</build>
</project>
  • 可以看到pom.xml文档中定义了该项目的groupId,artifactId,name和version,当构建后,就会生成该项目的jar包,此时,如其他项目要使用此项目,就可以通过坐标找到此jar包。
  • 还可以看到文档中还利用坐标声明了依赖和插件。
原文地址:https://www.cnblogs.com/quxikun/p/8417854.html