直接引用前面写过的
https://blog.csdn.net/weixin_51351637/article/details/128052572
直接引用前面写过的
https://blog.csdn.net/weixin_51351637/article/details/128052572
直接引用前面写过的
https://blog.csdn.net/weixin_51351637/article/details/128052572
经过上面的操作,我们的子模块和父模块之前有了一个良好的关系,但是在我们的父模块的内部很有可能会出现问题
比如说,同一个groupId下有不同的artifactId,很有可能会出现 artifactId不同。
或者说我们改了其中的一个版本,但是忘记改另外两个依赖的版本
如下图所示
现在我们希望出现一种机制,能够统一更改同一个groupId不同artifactId的版本信息(version),这种机制叫做属性,以后的版本信息都用这个属性的内容
等同于定义变量,方便统一维护
使用Maven的内置属性,快速配置
调用格式:
${basedir}
${version}
${project.version}
使用Maven配置文件setting.xml中的标签属性,用于动态配置
比如说想读取Maven安装目录中的setting.xml文件中的内容,就可使用下面的形式
调用格式:
${settings.localRepository}
读取java系统属性
${user.home}
maven里面也可以操作
系统属性查询方式:
mvn help:system
这样执行之后就会下载许多的插件,也会有两个分区,下面是系统变量
比如我们填写这个,我们就可以获取到Java(TM) SE Runtime Environment
${java.runtime.name}
下半区就是环境变量分区
环境变量引用前加env.
使用和4.1.4相同
1.8 5.1.9.RELEASE
org.springframework spring-context ${spring.version}
另外说明
这个时候不需要在
com.itheima ssm 1.0-SNAPSHOT pom 练习 com.itheima ssm_pojo ${version}
但是说实话我在实习的时候看公司pom文件,并没有这么做,还是在properties中进行声明,因为公司的项目会有很多的文件,有时候我们在本地只会修改一两个工程包,其他的工程包的版本不会动。如果这个时候我们修改父工程的版本,剩下的子工程的版本都会改变,但是大部分子工程的内容是没有改变的,所以没有必要。
这种情况下在我的公司是从git上的分支再拉取自己的分支,写完代码push之前我们需要统一版本,这时候我们需要将parent工程的pom文件版本以及修改过其他工程的pom文件版本统一,没有修改的就不用动,再install(将修改后的工程下载到本地)、deploy一下,上传到git自己的分支,然后再合并到test分支进行测试(parent项目不合并)。
合并到test的时候肯定会有冲突,此时pom文件中的版本要以test分支的版本号一致,相当于又将版本改回去了
SNAPSHOT: 快照版本
东西还没做完,正在开发, 也就是未完成版
项目开发过程中,为方便团队成员合作,解决模块间相互依赖和实时更新的问题,开发者对每个模块进行构建的时候,输出的临时性版本叫快照版本(测试阶段版本)
快照版本会随着开发的进展不断地更新
RELEASE:发布版本,成品
我们之前在spring天天见到RELEASE
项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构建文件是稳定的,即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本成为发布版本
修改完版本记得install一下,将依赖下载到仓库。
说到底这个操作都是改了一个名
这是在父工程的pom.xml文件中统一配置,下面的资源的属性要在其他的资源文件中使用
jdbc:mysql://localhost:3306/ssm_db
下面是在application.yaml中配置,比如
url: ${jdbc.url}
但是我们把项目install到仓库中,查看pom文件,发现是没有解析的,那这肯定是不行的
那我们怎么解决这件事呢?
在父工程的pom.xml中的
../ssm_dao/src/main/resources true
但是现在又存在了一个新的问题,如果有很多的工程,比如controller、service、dao等都存在类似的配置文件,那岂不是要添加很多?
答案是不用的,我们可以来一个通配的格式,如下所示
${project.basedir}/src/main/resources true
还有一种情况,就是测试类下面也会有一些配置文件,那这怎么做呢?
如下所示:
${project.basedir}/src/main/resources true ${project.basedir}/src/test/resources true
生产环境、开发环境、测试环境,在这三个不同的环境时,我们很有可能会改一下我们的配置(每次上线都需要把这些配置改一下),所以我们接下来要实现我们的配置能在多个环境运行,不用再修改配置
环境一般就是指生产环境、开发环境、测试环境。
dev jdbc:mysql://127.0.0.0:3306/ssm_db pro jdbc:mysql://localhost:3306/ssm_db
但是现在如果执行的话,我们的配置文件还是直接展示url: ${jdbc.url},并没有进行编译解析。
因为我们在Maven运行install的时候并没有指定环境,下面我们就指定环境
-P表示指定环境
mvn install -P pro
进入公司实习之后,发现公司会使用nacos远程配置,在这个地方会指定运行的环境
我们不通过命令行,我想直接install就让环境生成,有没有办法呢?
有!我们可以设置一种环境作为默认使用
dev jdbc:mysql://127.0.0.0:3306/ssm_db true pro jdbc:mysql://localhost:3306/ssm_db
上一篇:简单数据查询
下一篇:Python之面相对象语法全解