持续学习&持续更新中…
守破离
【Java从零到架构师第③季】【37】Maven补充
打包方式依赖冲突依赖冲突—解决方案1依赖冲突—解决方案2依赖冲突—解决方案3依赖冲突—解决方案4自定义属性分模块构建项目分模块构建项目—继承分模块构建项目—依赖分模块构建项目—聚合继承、依赖、聚合参考 打包方式
将MyBatis映射文件放在dao接口所在的目录(programmer.lp.dao)下(SkillDao.java、SkillDao.xml)
pom.xml:
src/main/resources src/main/java ***.xml
依赖冲突 依赖冲突—解决方案1
<?xml version="1.0" encoding="UTF-8"?> 4.0.0 org.example maven_complement 1.0-SNAPSHOT org.springframework spring-jdbc 5.2.8.RELEASE org.springframework spring-webmvc 5.2.2.RELEASE
依赖冲突—解决方案2
org.springframework spring-jdbc 5.2.8.RELEASE org.springframework spring-webmvc 5.2.2.RELEASE org.springframework spring-beans 5.2.9.RELEASE
依赖冲突—解决方案3
org.springframework spring-webmvc 5.2.2.RELEASE org.springframework spring-beans org.springframework spring-jdbc 5.2.8.RELEASE
依赖冲突—解决方案4
org.springframework spring-beans 5.2.5.RELEASE org.springframework spring-webmvc 5.2.2.RELEASE org.springframework spring-jdbc 5.2.8.RELEASE
dependencyManagement并不会下载导入库(依赖),只能用于规定依赖的版本号:
org.springframework spring-beans 5.2.5.RELEASE org.springframework spring-beans
自定义属性
例1:
<?xml version="1.0" encoding="UTF-8"?> 4.0.0 org.example maven_complement 1.0-SNAPSHOT 5.2.8.RELEASE xxx ... org.springframework spring-beans ${spring-version} org.springframework spring-jdbc ${spring-version} org.springframework spring-webmvc ${spring-version}
例2:
5.2.8.RELEASE UTF-8 org.springframework spring-beans ${spring-version} org.springframework spring-jdbc ${spring-version} org.springframework spring-jdbc org.springframework spring-webmvc ${spring-version}
分模块构建项目 分模块构建项目—继承 分模块构建项目—依赖 分模块构建项目—聚合
聚合与继承没有直接的关系。并不一定非要是它的子项目才能聚合,能找到哪个项目(肯定要使用Maven来管理),就可以聚合那个项目(可以使用./、…/、…等来寻找其他项目)
聚合是用于统一构建管理那些被聚合的项目的
继承、依赖、聚合
继承是为了在父项目的pom.xml中抽取公共的Maven配置,方便统一管理这些Maven配置。子项目继承父项目后,就可以在子项目的pom.xml中使用父项目的pom.xml中的Maven配置了。
让moduleA(项目A)依赖moduleB,是为了让moduleA能够使用moduleB的代码、资源、依赖库(classpath下的内容)等。
在一个项目中聚合多个项目,是为了能够统一管理构建这些被聚合的项目。聚合与继承并没有直接的联系,只不过,通常情况下我们会让父项目聚合管理它的子项目。
总结:
想要拿某个项目的pom.xml中的Maven配置来用——使用继承
想要拿某个项目的Java代码(配置文件、依赖库等)来用——使用依赖
想要统一构建管理某些项目——使用聚合
参考
小码哥-李明杰: Java从0到架构师③进阶互联网架构师.
本文完,感谢您的关注支持!