自己总结的定义maven项目的groupId、artifactId的方法:
- groupId越具体越好;不管是公司还是个人,尽量定义到项目的最上面一层,比如你的项目属于A公司的L部门的M小组,应该这样定义groupId:
com.A.L.M
,然后artifactId是你的项目名称;如果你的项目只是一个大项目下的模块,那groupId就要定义到你的大项目的层级,比如M小组下有个SP项目,你的项目是它的一个模块,则groupId为:com.A.L.M.SP
。当然现在实际中都是各种各样的,有的groupId统一使用公司的,所有项目都属于同一个groupId,这样不大好。
Maven的坐标:groupId+artifactId+version+packaging+classifier(定义构建输出的一些附属构件),其中加粗的是必须的,packaging是可选的,默认为jar,classifier是不能直接定义的。一般规则为:`artifactId-version[-classifier].packaging。
`Maven在编译,测试,运行时使用不同的classpath,依赖范围就是用来控制依赖与这三种classpath的关系。
依赖传递性如下:
依赖调解的两个原则:①路径最近者优先;②第一声明者优先。
查看当前项目的已解析依赖:mvn dependency:list
查看当前项目的已解析依赖的依赖树:mvn dependency:tree
分析当前项目的依赖:mvn dependency:analyze