一、maven两大核心
- 依赖管理:对jar包的管理,公司名+项目名+版本。
- 项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署。
概念模型:
项目根目录下执行dos命令,mvn tomcat:run,可将web项目发送到tomcat
二、安装&配置环境变量
- maven是java开发,所以必须提前安装jdk,且jdk环境变量名必须叫JAVA_HOME,然后下载解压版直接解压。
- 如果是只在idea、eclipse等开发工具中使用则可以不配置环境变量。
- 新增环境变量配置MAVEN_HOME,变量值为maven解压目录,bin目录的上一级
- 将maven_home环境变量配置到path中
- mvn -v 查看maven 版本
三、仓库类型
- 本地仓库、私有仓库、中央仓库
- 本地仓库找不到的,去私服中找,私服中找不到的去中央仓库找,然后下载到私服,然后下载到每人的本地仓库。
四、配置本地仓库
conf\settings.xml文件,修改 <localRepository>D:\tools\maven-local-lib</localRepository>
五、maven项目目录结构
六、maven常用命令
- mvn clean清理:项目根目录下执行mvn clean ,删除target目录,即清理所有编译后的文件。实质是调用插件(jar包)maven-clean-plugin操作,其他命令同理。
- mvn compile编译
- mvn test单元测试:将src/test/java目录下单元测试类中的方法全部执行,单元测试的类名必须以XxxxTest.java格式。
- mvn package打包:打包到target目录下
- mvn install安装:打包到本地仓库,解决本地多个项目公用一个jar包。
七、生命周期
- site 生成该项目所用到的jar包目录
八、创建maven项目
公司名称一般用域名的倒序
九、依赖范围
- 添加依赖范围,默认是compile
- 注意tomcat下存在的jar包,在项目中一定要设置为privated,否则部署到tomcat下时会报jar包冲突。eg:servlet-api、jsp-api
十、传递依赖冲突解决
传递依赖:A(项目)依赖B(项目),B依赖C(项目),B是A的直接依赖,C是A的传递依赖
查看依赖关系,可在idea或eclipse中,pom.xml文件右键或改变视图。
maven自己调节原则:
- 第一声明者优先原则:如果不同项目同时依赖同一项目,但是版本不同,maven只会引入一个版本的依赖,谁先定义的就用谁的传递依赖,即pom文件中定义在前的 dependency。
- 路径近者优先原则:直接依赖级别高于传递依赖,即直接依赖定义的版本会取代传递依赖中该项目不同版本的jar包。
排除依赖:
版本锁定:
注意dependencyManagement并不会导入依赖,只是管理依赖。
可以指定变量来统一控制,${变量名},中指定变量
私服
私服安装
1、下载maven私服,nexus。https://www.sonatype.com/download-nexus-repo-oss
2、解压后,在根部目录下使用管理员执行dos命令nexus install
3、安装后启动服务,可用命令nexus start或去windows服务中启动。
4、访问私服地址 http://localhost:8081/nexus/#welcome
默认用户 密码 admin/admin123
私服仓库类型
- Hosted宿主仓库:存放本公司开发的jar包(正式版本、测试版本、第三方:存在版权问题eg:oracle)
- Proxy代理仓库:代理中央仓库、Apache下测试版本的jar包
- Group组仓库:将来连接组仓库,包含宿主仓库和代理仓库
上传jar包到私服
1、在maven目录下修改setting.xml文件,认证配置用户名密码
2、在将要上传的项目的pom文件中配置jar包上传路径url
3、上传项目到私服,执行deploy命令,上传后可在私服搜索到上传的jar包。
从私服下载jar包到本地仓库
1、在maven目录下修改setting.xml文件,配置模板
2、修改setting.xml文件,激活模板