【Maven】核心知识

介绍

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具

maven文件结构说明

apache-maven-3.3.3

  • bin
    • 包含mvn的运行脚本
    • 在命令行中输入mvn就会调用这些文件
    • m2.conf是一个配置文件
  • boot
    • 类加载器的框架
  • conf
  • lib

配置环境变量

windows版
1.计算机-右键-属性-高级系统设置-环境变量
2.系统变量中-新建
变量名:M2_HOME
变量值:F:\apache-maven-3.3.3
3.在path的变量值后添加

;%M2_HOME%\bin

4.验证是否配置成功
打开命令提示符,输入mvn -v
【Maven】核心知识_第1张图片

maven规定的代码结构

src

  • main
    • java
      • 主代码
  • test
  • java
    • 测试代码
  • resources

常用命令

命令 说明
mvn -v 查看maven版本
mvn compile 编译
mvn test 测试
mvn package 打包
mvn clean 删除target
mvn install 安装jar包到本地仓库

自动创建目录骨架

方式一:
mvn archetype:generate 按照提示进行选择

方式二:
mvn archetype:generate -DgroupId=组织名,公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名

坐标

构件通过坐标作为其唯一标识
【Maven】核心知识_第2张图片

仓库

本地仓库

默认位置

【Maven】核心知识_第3张图片

更改本地仓库位置

【Maven】核心知识_第4张图片

修改maven/settings.xml文件
【Maven】核心知识_第5张图片

远程仓库

默认地址

https://repo.maven.apache.org/maven2

修改镜像仓库位置

【Maven】核心知识_第6张图片
【Maven】核心知识_第7张图片

maven的生命周期和插件

完整的项目构建过程

  • 清理
  • 编译
  • 测试
  • 打包
  • 集成测试
  • 验证
  • 部署

maven生命周期

  • clean 清理项目
    • pre-clean 执行清理前的工作
    • clean 清理上一次构建生成的所有文件
    • post-clean 执行清理后的文件
  • default 构建项目
    • compile
    • test
    • package
    • install
  • site 生成项目站点
    • pre-site 在生成项目站点前要完成的工作
    • site 生成项目的站点文档
    • post-site 在生成项目站点后要完成的工作
    • site-deploy 发布生成的站点到服务器上

使用插件

【Maven】核心知识_第8张图片

pom.xml

常用元素介绍


	 
	4.0.0
	
	反写的公司网址+项目名
	项目名+模块名
	
	
	0.0.1
	
	
	jar
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
		3.8.1
	

	
		
			
			
			
			
			
			test
			
			
			
			
				
			
		
		
		
			junit
			junit
			${junit.version}
			test
		
		
	
	
	
	
		
			
		
	
	
	
		
		
			
				org.mortbay.jetty
				jetty-maven-plugin
				8.1.16.v20140903
				
					
						
						package
						
							run
						
					
				
			
		
	
	
	
	
		com.hongxing
		hongxing-parent
		0.0.1-SNAPSHOT
	
	
	
	
		
		../hongxing-bge
		../hongxing-nange
		../hongxing-shanji
		

依赖范围

  • compile:默认的范围,编译测试运行都有效
  • provided:在编译和测试时有效
  • runtime: 在测试和运行中有效
  • test:只在测试时有效
  • system:与本机系统相关联,可移植性差
  • import:导入的范围,它只使用在dependencyManagement中,表示从其他的pom中导入dependecy的配置

依赖冲突

###短路优先,选取依赖路径短的
A - > B - > C - > X(jar)
A - > D - > X(jar)

先声明先优先

路径长度相同,则谁先声明,先解析谁

你可能感兴趣的:(Maven,maven,java)