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报红解决方法
maven web项目的web.xml报错The markup in the document following the root element must be well-formed.(代码片段
iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用(代码片段