Maven学习总结(3)maven项目的结构和mvn命令以及核心概念

maven的项目规约,也就是maven项目的通常结构

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第1张图片

 mvn常用的命令

mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=cn.sm1234
-DartifactId=hellojava -DarchetypeArtifactId=maven-archetype-quickstart
-Dversion=0.0.1-snapshot

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第2张图片

注意: 先进入项目目录后再操作!
 

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第3张图片

根据你的ide配置好maven,然后就可以进行开发了,配置maven,所有的ide大同小异,都是需要主目录,setting文件的位置,仓库的位置,这里就不详细写了,网上的这方面资料很多。

 

maven的仓库

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第4张图片

 Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第5张图片

坐标: 依赖在仓库中的位置,在仓库中找到依赖的标识。

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第6张图片 

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第7张图片

 依赖管理(重点)

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第8张图片

 依赖的范围,类的作用域。

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第9张图片 

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第10张图片 

 Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第11张图片

 依赖传递:当一个项目依赖另一个项目的时候,同时会将另一个项目所依赖的类导入类库。


假设 A 依赖于 B, B 依赖于 C, 我们说 A 对于 B 是第一直接依赖, B 对 C 是第二
直接依赖, A 对于 C 是传递性依赖。 第一直接依赖的范围和第二直接依赖的范围
决定了传递性依赖的范围。

Maven学习总结(3)maven项目的结构和mvn命令以及核心概念_第12张图片

在依赖节点 dependency 中的可以控制当前的依赖是否向下传递;
默认值为 false, 表示向下传递。
 

在 pom 中的依赖节点中, 如果引入的依赖包含了很多其它的传递依赖, 而且
项目需要的这些依赖的版本和传递依赖的不相符; 那么可以在依赖节点中设置排
除依赖节点: 然后再添加 , 其里面的内容包括:
   ①所包含坐标
   ②排除依赖包中所包含的依赖关系
【注意】 不需要添加版本, 直接类别排除


  org.apache.struts
  struts2-spring-plugin
  2.3.24.1
  
      
      
          org.springframework
          spring-core
      
  


 

 依赖冲突

 如果依赖的路径不相同的时候, 以最短的路径为准。

如果直接依赖中包含有同一个坐标不同版本的资源依赖, 以POM.xml配置顺序下方的
版本为准
如果间接依赖中包含有同一个坐标不同版本的资源依赖, 以POM.xml配置顺序上方的
版本为准

 

 

default 生命周期
 default 生命周期是 Maven 生命周期中最重要的一个, 绝大
部分工作都发生在这个生命周期中。 比较重要和常用的阶段如下:
validate
generate-sources
process-sources
generate-resources
process-resources 复制并处理资源文件, 至目标目录, 准备打包。
compile 编译项目的源代码。
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources 复制并处理资源文件, 至目标测试目录。
test-compile 编译测试源代码。
process-test-classes
test 使用合适的单元测试框架运行测试。 这些测试代码不会被打包或部署。
prepare-package
package 接受编译好的代码, 打包成可发布的格式, 如 JAR 。
pre-integration-test
integration-test
post-integration-test
verify 运行任何检查, 验证包是否有效且达到质量标准。
install 将包安装至本地仓库, 以让其它项目依赖。
deploy 将最终的包复制到远程的仓库, 以让其它开发人员与项目共享。
运行任何一个阶段的时候, 它前面的所有阶段都会被运行, 这也就是为什么运行
mvn install 的时候, 代码会被编译, 测试, 打包。 此外, Maven 的插件机制是完
全依赖 Maven 的生命周期的。

 

你可能感兴趣的:(工具使用)