maven进阶:
分模块开发:
就是一个模块只做自己的功能,其他模块要引用的需要导入模块pom文件中的坐标和使用maven的install命令安装到maven仓库中。
依赖管理:
依赖的传递性:直接依赖下的间接依赖不用写在pom中也能使用。
依赖优先级:直接依赖>间接依赖,直接依赖中后面覆盖前面,间接依赖中前面覆盖后面。
优先级导致的版本错乱:隐藏自己的依赖不给其他模块使用,后面加<optional>true</optional>。
想在自己的直接依赖中去除间接依赖在依赖中加入<exclusions><exclusion<groupId>间接依赖名称</groupId><artifactId>间接依赖名称</artifactId></exclusion><exclusion></exclusion>
聚合:
用于管理所有模块,①创建maven模块,加<packaging>pom</packaging>设置为pom文件。②在聚合工程中添加管理模块名称:<modules><module>../模块名称</module></modules>
继承:
简化依赖,减少版本更新的冲突。
需要先在子工程中继承父工程,<parent>中导入父坐标,并加上<relativePath>相对路径。
在父工程中可以选择配置可管理和全局依赖,可管理要在dependencies外加<dependencyMangement>;
属性:
自定义属性:
为了方便后期依赖太多,换版本等太麻烦,容易出错。
用于依赖:①pom中定义<properties><属性名>值 ②在想用的地方加${属性名}来进行引用。
资源文件中引用属性:①在pom文件的与定义依赖属性一样写属性名和值,②与依赖同操作,③开启资源目录过滤器pom中<build><resources><resources><directory>${project.basedir}/src/main/resources<filtering>true
其他属性:
属性分类 | 引用格式 | 示例 |
自定义属性名 | ${自定义属性名} | ${spring.version} |
内置属性 | ${内置属性名} | ${basedir} ${version} |
Setting属性 | ${setting.属性名} | ${settings.localRepository} |
Java系统属性 | ${系统属性分类.系统属性名} | ${user.home} |
环境属性 | ${env.环境变量属性名} | ${env.JAVA_HOME} |
dos中输入mvn help:system可以获取环境和系统属性。
依赖后的版本:
工程版本:
SNAPSHOT:正在更新
RELEASE:正式发布,稳定一些
发布版本:
alpha版
beta版
纯数字版
多环境开发:
多环境作用是为了测试和发布等不同环境;
定义多环境,本义是轮廓,间接,计算机中指的是用户配置文件。
<profiles>
定义具体环境
<profile>
以后调用的id
<id>环境名称
具体属性
<properties>
<资源名称>jdbc:mysql://127.0.0.1:3306/ssm_db</jdbc.url>
设置默认启动
<activation>
<activeByDefault>true
执行指令:
mvn 指令(如install) -p 环境定义的id
跳过测试:
跳过指令: mvn 指令 -D skipTests
还能在idea的右侧maven栏中点击跳过按钮
细粒度跳过
<plugin><artifactId>maven-surefire-plugin
<version>版本
<configuration>
设置是否跳过
<skipTests>true
包含指定测试用例
<includes>
<include>内容
排除指定的测试用例
<excludes>
<exclude>
私服:
用于替代中央仓库存放资源。
nexus:
服务启动命令:在nexus的bin下有nexus.exe的路径中启动dos(输入cmd),输入nexus.exe /run nexus
启动!出错可能是因为路径有中文,或是文件夹权限。
然后点击右上角登录,提示Your admin user password is located inD:\Program Files\nexus\sonatype-work\nexus3\admin.password on the server.去相应文件中找到密码然后复制,登录后会让你改密码。
![](https://img-blog.csdnimg.cn/img_convert/d5eeb6555be196cb453aeae034e10a2a.png)
仓库分组:
![](https://img-blog.csdnimg.cn/img_convert/97de8b31fc10f5963b238b13ad410e50.png)
在maven中的conf中的setting.xml文件中添加私服
在浏览器中启动的中可以新建自己的仓库
![](https://img-blog.csdnimg.cn/img_convert/f1550c04efed914187c2e1320074b8a2.png)
在setting中添加私服权限:
![](https://img-blog.csdnimg.cn/img_convert/d990623f5cb0470dc38519c882cfe460.png)
配置映射路径:
![](https://img-blog.csdnimg.cn/img_convert/1f58df2229f008aeeb40f2958152ce2f.png)
发布:
在pom文件中:
![](https://img-blog.csdnimg.cn/img_convert/c1e58c38140f04d341dd0cb413b1f037.png)
在idea右侧maven中点击deploy