1.Maven?
管理和构建java项目;
2.为什么要用Maven?
(1)管理jar包(动态导入依赖,有本地仓库放jar包,减小工程大小)
(2)清晰的项目结构,IDE中生成的Maven项目有特定的项目结构(main、test、pom.xml)
(3)一键构建项目(通过命令对项目一键构建)
3.安装和配置Maven
- 下载:Maven – Download Apache Maven
- 环境变量:(mvn –v验证)Maven环境变量配置 - AntzUhl - 博客园
- 常用依赖地址:https://mvnrepository.com
4.管理jar包
根据导入的依赖,在pom中添加dependency;
可以选择的修改Maven的setting.xml,如修改本地的仓库目录,或添加远程的私有库,或添加阿里云镜像增加下载速度,或添加私服/远程仓库地址…;
导入依赖的时候可能出错(比如由于网速问题下载jar包超时),导致项目import包失败?
这个时候去找对应的本地仓库的包,把它删了再重新导入依赖即可;
5.三种Maven仓库
Maven仓库查找顺序:本地仓库-远程仓库-中央仓库
6.Maven的项目结构
src { main { java resources } test } pom.xml
关于将大型项目按功能分成小项目,模块开发,如何关联各个模块?——
(1)将各个模块分别打成jar包,放到公司的私有远程仓库,通过引用jar包来关联其他项目;每个模块只需要编译自身的代码,其他模块的代码都以jar包形式导入依赖;
(2)对于单个模块(小工程),可以按照传统的分层:service、DAO、controller、common等分层分包;
7.Maven常用命令
Alt+F11在IDEA里面打开命令行;
测试一下:
(1)mvn clean 清理已编译的工程;
运行/编译maven工程后,会生成target文件夹(放.class文件、生成的资源…等)
执行mvn clean:
(2)mvn compile,只编译main的java文件,不编译test中的java文件;
(3)mvn test-compile,编译test中的java文件;
(4)mvn test运行所有的test下的java文件中的@Test单元测试;
(5)打包,mvn package,在pom.xml中配置<packaging>,为jar则打成jar包,为war则打成war包;命名为artifactedId+version+packaging的类型;
(6)mvn install
将当前工程打成包(jar包),并且放在了本地仓库里面,其他的工程可以导入依赖关联当前工程;
(仅了解)Maven命令也是有不同对应的“生命周期”(就当做成不同mvn命令的一个分类)
8.<dependency>的<scope>属性
9.Tomcat热部署
就是在Tomcat启动的时候,当修改了项目,不需要重启Tomcat就可以把项目重新redeploy;需要配置一下Tomcat…(了解即可)
10.Maven依赖传递/冲突
IDEA解决冲突的实用插件:Maven Helper
11.操作远程仓库
生成jar包,上传至远程仓库,然后从远程仓库导入依赖;
(1)安装自己的远程仓库,如使用公司私有仓库Nexus;
(2)从远程仓库导入jar包到当前工程 在maven的config下的setting.xml中配置profile标签并且激活;
总结:平时用的最多的还是对setting.xml文件和pom.xml的修改(导入依赖);