Maven坐标机制

Maven坐标机制通过groupId、artifactId、version、packaging和classifier五要素实现项目定位。groupId定义项目归属,artifactId标识具体模块,version表示版本,packaging指定打包类型,classifier用于附属构建。依赖配置在pom文件中,包含必填的groupId、artifactId、version和可选的type(默认为jar)、scope(依赖范围)及exclusions(排除传递性依赖)。了解更多Maven依赖管理实践,可参考相关博客文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Maven为所有的项目引入了坐标,基于坐标机制可以唯一定位一个项目。

坐标详解

以spring-core-2.5.6.jar的坐标定义为例,说明组成坐标的所有元素:groupId、artifactId、version、packaging、classifier。如下所示:

    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <packaging>jar</packaging>
    <version>2.5.6</version>

groupid: 定义当前Maven项目所属的实际项目。因为很多时候,一个实际的项目很可能有多个模块组成,例如org.springframework项目就有spring-core、spring-beans、spring-context等模块。
artifactId: 定义当前Maven项目在所属实际项目中的具体模块名称。如spring-core为该具体模块的名称。
version: 定义Maven项目当前的版本。
packaging: 打包方式,包括jar、war、pom等。
classifier: 定义构建输出的一些附属构建。例如,我们生成了一个构建a.jar,我们希望在构建的时候也能生成一个与a.jar对应的其源码jar包,为a-sources.jar。则a-sources.jar即为附属构建,sources就是该附属构建的classifier。需要注意的是:不能在项目中直接定义classifier,因为附属构建不是默认生成的,需要附加的插件才能生成。请参考: Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:

依赖配置

在pom文件中按照坐标机制配置该项目对其他构件的依赖,配置语句如下所示:
其中groupId、artifactId、version三个参数是必须的,type相当于坐标中的packaging,scope参数用来确定所依赖的构建的依赖范围,exclusions参数用来排除依赖中的传递性依赖。

<project>
.....
    <dependencies>
        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <version>...</version>
            <type>...</type>
            <scope>...</scope>
            <optional>...</optional>
            <exclusions>
                <exclusion>...</exclusion>
            </exclusions>
        </dependency>
        .....
    </dependencies>
    .....
</project>

关于Maven依赖管理的其他知识,请参考大神徐晓斌的博客文章:Maven最佳实践:管理依赖

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值