Maven坐标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven坐标相关的知识,希望对你有一定的参考价值。

在平面几何中,用坐标(x, y)唯一确定一个点。在maven的世界里,用maven坐标来唯一确定一个构件。

maven坐标元素包括groupId, artifactId, version, packaging, classifier。

技术分享
<?xml version="1.0" encoding="UTF-8"?>
<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>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.7</version>
    <packaging>pom</packaging>
...... </project>
技术分享

groupId:对应公司的一个实际项目

artifactId:实际项目中的子工程

version:版本号

packaging:打包方式,默认为jar,还有pom, maven-plugin, ejb, war, ear, rar, par等。

classifier:比如dom4j-1.6.1-sources.jar,dom4j-1.6.1-javadoc.jar这里的sources、javadoc就是一个classifier。再比如,一个包用不同的JDK版本编译,可以加上classifier,在dependency配置依赖时,可以指定具体的classifier的包(例子)。classifier是一个可选项,也不能在定义构件时指定,而是通过其它插件额外生成的附属构件。之所以被作为坐标的一部分,我想就是因为dependency时候有时需要指定。

构件的文件名是与坐标相对应的,一般规则为 artifactId-version[-classifier].packaging,[-classifier是可选的]。

个人认为最佳实践:groupId是artifactId的前缀,artifactId是package的前缀。比如,groupId是com.huawei.soa,artifactId是com.huawei.soa.precompile.meta,class是com.huawei.soa.precompile.meta.bs.BusinessServiceUtils,这样的话,看到class能知道在哪个包里,看到jar能知道属于哪个groupId,方便追根溯源。


以上是关于Maven坐标的主要内容,如果未能解决你的问题,请参考以下文章

idea中maven工程导入坐标Dependencies报红解决方法

根据顶点世界位置Y坐标修改Metal片段着色

片段内的视图坐标始终为空

maven web项目的web.xml报错The markup in the document following the root element must be well-formed.(代码片段

传递给片段着色器的纹理坐标全部为 0

iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用(代码片段