maven实战-----读书笔记之第十四章

第十四章 灵活的构建

1.Maven属性:

2.构建环境的差异

在不同的环境中,项目的源码应该使用不同的方式进行构建,最常见的是数据库配置,

生产环境数据库配置

测试环境数据库配置

我们常见的做法是,先改好了之后再去构建,但是,maven针对不同的环境生成不同的构件,为了应对环境的变化,首先需要使用maven属性将这些会发生变化的部分提取出来,连接数据库时,url,用户名,密码都有可能发生变化,因此用maven属性代替它,如下图所示:

这里定义了四个maven属性,既然用到了maven属性,就应该在某个地方定义它,我们可以新增一个profile将其包裹起来,注意的是,他定义的四个maven属性与properties文件下的${db.username}等四个配置相同,这样才可以匹配起来如下图所示:

这里使用了一个id为dev的profile,目的是将开发环境与其他环境区分开来,有了属性定义,配置文件中也使用了这些文件,还要做的是,maven的属性默认只会在pom文件中被解析,所以,我们需要propeties也要认识这四个属性,因此需要让maven解析资源文件的maven属性,其实是maven-resources-plugin插件要做的事情,首先我们要为资源开启过滤,在pom.xml的build添加下面几行,如下图所示:

 到这里,我们将数据库配置的变化部分提取成了maven属性,在pom的porfile中定义了这些属性的值,并且为资源目录开启了属性过滤,最后,主需要在命令行激活profile,maven就能够在构建项目的时候使用profile中的属性值替换数据库配置文件中的属性引用

输入命令: mvn clean install -Pdev 

针对不同环境的profile

输入命令: mvn clean install -Pdev,-Ptest ,此时会激活dev和test这两个profile

上面介绍了命令行激活,下面我们看看其他几种激活方式

 

2.profile的种类

 

posted @   每天进步一点点_hejj  阅读(143)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示