Maven进阶笔记-创新互联
- 分模块开发的意义
- 依赖管理
- 聚合与继承
- 属性管理
- 多环境配置与应用
- 游戏
- 理解分模块开发的意义
- 能使用聚合工程快速构建项目
- 能够使用继承简单化项目配置
- 能够根据需求配置生产、开发、测试、环境,并在各个环境间切换运行
- 将原始模块按照功能拆分成若干个子模块,方便魔窟间的相互调用,接口共享
步骤
行唐ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!创建Maven模块
书写模块代码
注意事项:分模块开发需要先针对模块功能进行设计,在进行编码。不会先将工程开发完毕,然后进行拆分
通过maven指令安装模块到本地仓库(insatall指令)
注意事项:团队内部开发需要发布模块功能到团队内部可共享的仓库中(游戏)
依赖指当前项目运行所需的jar,一个项目可以设置多个依赖
格式:
org.springframework spring-webmvc 5.2.10.RELEASE
- 依赖具有传递性
- 直接依赖:在当前项目中通过依赖配置简历的依赖关系
- 间接依赖:被资源的资源如果依赖其他资源,当前项目间解依赖其他资源
- 依赖传递冲突问题
- 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
- 声明优先:当资源在相同层级被依赖时,配置顺序越靠前的覆盖配置顺序靠后的
- 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
- 可在idea中看mave结构选项内显示哪个优先级哪个大,可以打开看结构关系深度图
可选依赖指对外隐藏当前所依赖的资源——不透明
可选依赖是隐藏带你给钱工程所依赖的资源,隐藏后对应资源不具有依赖传递性
true org.springframework spring-webmvc 5.2.10.RELEASE true
排除依赖指主动断开依赖的资源,被排除的资源无需治党版本——不需要
在依赖的模块内排除不需要的依赖
com.hcx Maven_03_pojo 1.0-SNAPSHOT log4j log4j
- 排除依赖资源仅治党GA即可,无需指定V
- 聚合:将多个模块组织成一个整体,同时进行项目构建的过程称为聚合
- 聚合工程:通常是一个不具有业务功能的"空"工程(有且仅有一个pom文件)
- 作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,事项对所有包含的模块进行同步构建
- 当工程中某个模块发送更新(变更)时,必须保障工程中已更新模块关联的模块同步更新,此时可以使用聚合工程来解决批量模块同步构建的问题
步骤:
创建Maven模块,设置打包类型为pom
com.hcx maven_01_parent 1.0-SNAPSHOT pom 注意事项:每个maven工程都有对应的打包方式,默认为jar,web工程打包方式为war
设置当前聚合工程中所包含的子模块名称
../Maven_03_pojo ../maven_04_dao ../springmvc_08_ssm 注意事项:聚合工程中所包含的模块在进行构建时会更卷模块间的依赖关系设置构建顺序,与聚合工程中模块的配置书写位置无关,参与聚合的工程无法向上干燥是否参与聚合,只能向下配置哪些模块参与本工程的聚合
- 概念:继承描述的是连个工程间的关系,与java中的继承类似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承
- 作用:
- 简化配置
- 减少版本冲突
创建Mave模块,设置打包类型为pom
pom 注意事项:建议父工程打包方式设为pom
在父工程的pom文件纵配置依赖关系(子工程将沿用父工程中的依赖关系)
......org.springframework spring-webmvc 5.2.10.RRLEASE 配置子工程中可选的依赖关系
.......com.alibaba druid 1.1.16 在子工程中配置当前使用父工程中可选依赖的坐标
com.alibaba druid 注意事项:子工程中使用父工程中的可选依赖是,仅需要提供群组id和项目id,版本由父工程统一管理,避免版本冲突子工程中还可以定义父工程中没有定义的依赖关系
- 作用
- 聚合用于快速构建项目
- 继承用于快速配置
- 相同点
- 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
- 聚合与继承均属于设计型模块,并无实际的模块内容
- 不同点:
- 聚合是当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
- 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
解决版本号统一问题
属性的配置与使用定义属性
5.2.10.RELEASE 注意事项:properties标签内的标签可自行定义【尽量做到间名知意】
引用属性
org.springframework spring-webmvc ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-test ${spring.version}
定义属性
5.2.10.RELEASE 4.12 jdbc:mysql://127.0.0.1:3306/ssm_db 配置文件中引用属性
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=${jdbc.url} jdbc.username=root jdbc.password=******
开启资源文件目录加载属性的过滤器
${project.basedir}/src/main/resources true 配置maven打war包,忽略web.xml检查
${project.basedir}/src/main/resources true
属性列表
- 自定义属性(常用)
- 内置属性
- Setting属性
- Java系统属性
- 环境变量属性
表格详细展示(了解)
属性分类 引用格式 示例 自定义属性 ${自定义属性名} ${spring.version} 内置属性 ${内置属性名} ${basedir} ${version} Setting属性 ${setting.属性名} ${settings.localRepository} Java系统属性 ${系统属性分类.系统属性名} ${user.home} 环境变量属性 ${env.环境变量属性名} ${env.JAVA_HOME}
- 工程版本
- SNAPSHOT(快照版本)
- 项目开发过程中临时输出的版本,称为快照版本
- 快照版本会随着开发的进展不断更新
- RELEASE(发布版本)
- 项目开发到静茹阶段里程碑后向团队外部发布较为稳定的版本,这种版本所对应的构件文件是稳定的,即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本称为发布版本
- SNAPSHOT(快照版本)
- 发布版本
- alpha版
- beta版
- 纯数字版
- mave提供了配置多种环境的设定,帮助开发者使用过程种快速切换环境
定义多环境
env_dep jdbc:mysql://127.0.0.1:3306/ssm_db true pro_dep jdbc:mysql://127.1.1.1:3306/ssm_db test_dep jdbc:mysql://127.2.2.2:3306/ssm_db 使用多环境(构建过程)
mvn 指令 -P 环境定义id
范例:
mvn install -P pro_env
目的:为了跳过一些没有开发完成的完成测试内容
跳过测试
mvn 指令 -D skipTests
范例:
mvn install -D skipTests
注意事项:执行的项目构建指令必须包含测试声明周期,否则无效果。例如执行compile生命周期,不经过test生命周期
细粒度控制跳过测试
org.apache.maven.plugins maven-surefire-plugin 2.12.4 true **/User*Test.java **/BookServiceTest.java
游戏是一台独立的服务器,用于解决团队内容不的资源共享与资源同步问题
Nexus
- Sonatype公司的一款maven游戏产品
- 下载地址:https://help.sonatype.com/repomanager3/download
启动服务器(命令行启动)
nexus.exe /run nexus
访问服务器(默认端口:8081)
http://localhost:8081
修改基础配置信息
- 安装路径下etc目录中nexus-default.properties文件保存有nexus基础配置信息,例如访问端口
修改服务器运行配置信息
- 安装路径下bin目录中nexus.vmoptions文件保存有nexus服务器对应的配置信息,例如默认占用内存空间
- 我们的坐标是放在游戏的仓库中,下载资源是使用仓库组
仓库类别 | 英文名称 | 功能 | 关联操作 |
---|---|---|---|
宿主仓库 | hosted | 保存自主研发+第三方资源 | 上传 |
代理仓库 | proxy | 代理连接中央仓库 | 下载 |
仓库组 | group | 为长裤编组简化下载操作 | 下载 |
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享文章:Maven进阶笔记-创新互联
文章来源:http://hbruida.cn/article/csoooc.html