将原始模块按照功能拆分为若干个子模块,方便模块间的相互调用,接口共享。
将其中一部分功能抽出来,做成一个独立的模块,然后在使用方使用maven的依赖坐标去引用。
依赖即当前项目运行所需的jar包,一个项目可以设置多个依赖
依赖传递途中,出现了两个不同版本的同一个jar包,优先级理论如下:
理解就行,工作时刷新右侧Maven,出来哪个自然就是哪个生效了。
整个依赖关系,除了点开看,也可以直接点这里:
即,引用我的人看不到我是否用了这个依赖。不想让别人知道我用过这个资源,这样也可以避免一些依赖冲突的问题。
...false
java001引用java002,本来可以看到2中引用了log4j:
被引用的2不想让别人知道引用了log4j,则加optional:
总结即:
即:主动断开依赖的资源,这时不用写版本,三坐标中的version不用
org.slf4j slf4j-api
可选依赖是我隐藏我自己的某个依赖,别人不知道我有没有用过它;排除依赖是我用了别人的东西,发现有一部分我不想要,需要去掉
聚合:
问题:
当pojo模块更新,如删掉一个属性,如果其余模块未能同步更新,则会导致其余模块不可用。
引入一个聚合工程,来同步管理,实现已更新模块关联的模块的同步更新。
聚合工程开发步骤:
STEP1:
创建Maven模块(空),设置打包类型为pomSTEP2:
在pom文件中设置当前聚合工程所包含的子模块的名称继承:
问题:
继承:
继承描述的是两个工程间的关系,与Java中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承,优势是:
继承的实现步骤:
STEP1:
创建Maven模块,设置打包类型为pom
STEP2:
在父工程的pom文件中配置公共的依赖关系,以便子工程以后继承沿用
STEP3:
在父工程的dependencyManagement标签中配置子工程可选的依赖
STEP4:
在子工程中用parent标签配置当前工程所继承的父工程
STEP5:
在子工程中配置使用父工程中可选依赖的坐标,注意不用版本坐标,版本又父工程统一提供,一避免冲突
聚合和继承的对比整理:
属性:
问题:
需要更改依赖版本的时候,即使有了继承简化,一下改多个依赖的版本仍然容易漏掉,考虑通过引入一个变量来实现-----即属性。
属性的配置与使用
STEP1:
在父工程的pom文件的properties标签中定义属性,如spring.version
STEP2:
使用dollar大括号引用属性,以后方便修改
配置文件加载属性:
资源文件如jdbc.properties中如何引用pom文件中的属性?
STEP1:
在pom.xml中定义属性STEP2:
配置文件中使用dollar大括号引用属性STEP3:
在pom文件中开启资源文件目录加载属性的过滤器,以便directory标签中的目录可以解析变量Maven打war包的时候,没有web.xml文件会报错,如何解决?
思路1):创建个空的web.xml文件欺骗IDEA
思路2):在(父)pom文件中加配置,忽略web.xml检查
其余属性:
版本管理:
引入的依赖的版本号命名规则多样:
**关于版本号:**
多环境开发:
maven提供配置多种环境的设定,帮助开发者在使用过程中快速切换环境
比如以上三个环境,打包的时候如何快速切换选定某一个来打包。
多环境开发步骤:
STEP1:
在pom文件中,用profiles标签定义多个环境:env_dep、env_pro、env_testSTEP2:
使用多环境跳过测试:
问题场景:
跳过测试的方法:
方式一: 闪电图标,但这样所有的模块就都跳过了
方式二: 用指令
方式三: 在pom文件中,使用测试插件,进行细粒度控制
下载:
启动:
分类:
IDEA和私服间进行资源的上传与下载,中间要通过本地仓库来打交道,因此需要配置本地仓库访问私服的配置。
修改本地仓库的setting文件内容,配置访问私服的参数:
mvn deploy
上一篇: 高三化学下学期教学计划
下一篇:使用cublas实现矩阵乘法