应用场景
我们在开发的时候会遇到需要区分正式环境、测试环境、开发环境使用不同的参数,如数据库的用户名及密码等。这时可以用Spring 的PropertyPlaceholderConfigurer 来配置受环境影响的变量,这种使用多个配置文件的方式,但是我觉得这样不够灵活,所以就使用了maven的profiles 来实现,在打包的时候maven就会根据指定的配置参数写入文件。
配置方式分为两种,一种是全局配置即在.m2/conf/setting.xml 里面配置实现全局,一种是在项目中的pom.xml配置,这里我没有用到全局方式,就不详细介绍,我们主要介绍项目中配置方式。
实现
1.pom.xml配置
<build>
<!-- 配置使用变量的配置文件-->
<filters>
<filter>src/main/resources/application.properties</filter>
</filters>
<resources>
<!--配置文件路径-->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>local</id>
<properties>
<pom.env>dev</pom.env>
<pom.ver>1.2.4</pom.ver>
</properties>
<activation>
<!--默认生效的配置组-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>dev</id>
<properties>
<pom.env>dev</pom.env>
<pom.ver>1.3.3</pom.ver>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<pom.env>pro</pom.env>
<pom.ver>1.3.5</pom.ver>
</properties>
</profile>
</profiles>
2.application.properties配置
env=${pom.env}
ver=${pom.ver}
3.执行
执行的时候加上-P ${profile.id},使用默认的可以不加,我用的IDE自带的工具选择生效参数组,在Profiles里面选择参数组
mvn clean install -P local
4.总结
步骤如下:
pom.xml中添加、参数
EL表达式在配置文件中调用变量
执行是-P 制定参数
注意: 必须有下面的resources配置profiles才有效的
<build>
<!-- 配置使用变量的配置文件-->
<filters>
<filter>src/main/resources/application.properties</filter>
</filters>
<resources>
<!--配置文件路径-->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
分享到:
相关推荐
此外,Maven还支持ProfileBuild的配置,它允许根据不同的环境变量、操作系统等条件来使用不同的构建设置。ProfileBuild是在<profiles>标签内定义的,它可以覆盖或扩展ProjectBuild中的配置。 总之,Maven通过pom....
Profile通常定义在`pom.xml`文件的`<profiles>`标签下。 为了实现多环境构建,我们可以在`pom.xml`中创建多个Profile,每个Profile对应一个环境。例如,我们可以有名为`dev`(开发)、`test`(测试)和`prod`(生产...
要在POM.xml文件中定义Profile,我们可以在`<project>`标签下添加`<profiles>`标签,然后在其中定义具体的Profile。例如,我们可以为开发、测试和生产环境创建三个Profile: ```xml <profiles> <profile> <id>dev...
在`<profiles>`标签内,定义一个profile,包括对发布到私服的配置: ```xml <profiles> <profile> <id>nexus-release</id> <repositories> <repository> <id>my-nexus-release</id> <url>...
在Maven项目中,我们常常需要针对不同的部署环境(如开发、测试、生产等)使用不同的配置文件。本篇将详细讲解如何在Maven下实现多种环境下的资源配置管理,帮助开发者更高效地管理项目。 1. **Maven profiles**: ...
本文介绍了如何使用 SpringBoot 和 Maven 实现多环境配置文件夹解决方案,使用 Profile 功能来加载不同的配置文件,使用 Resources 和 Filter 来指定打包内容和替换变量,选择当前环境,加载对应的配置文件。
** Maven 3.6.2 资源包详解与设置指南 ** Maven 是一个强大的 Java 项目管理工具,它极大地简化了构建、依赖...正确理解和配置 `settings.xml` 文件,能确保 Maven 以最佳方式工作,满足不同项目和开发环境的需求。
`profiles`元素允许用户定义一组可选的配置,这些配置可以根据环境变量或命令行参数自动激活。例如,你可以定义一个针对生产环境和开发环境的配置: ```xml <profiles> <profile> <id>production</id> ...
打开`settings.xml`,我们可以找到`<profiles>`标签,这里可以定义多个配置环境,每个环境都可以指定不同的JDK版本。 要为Maven配置一个全局的JDK版本,我们需要创建一个新的`<profile>`,然后在其中添加`<build>`...
<artifactId>maven-resources-plugin</artifactId> <version>3.2.0</version> </plugin> </plugins> ... </build> ``` 3. **使用占位符**:在资源文件中,我们可以使用`${}`包裹变量名,Maven会自动替换它们。...
<profiles>...</profiles> <servers>...</servers> <activeProfiles>...</activeProfiles> </settings> ``` #### 关键配置项 1. **`localRepository`**:定义Maven本地仓库的路径,用于存储下载的依赖库。默认...
- **项目坐标**:在 Maven 项目的核心配置文件 `pom.xml` 中,通过 `<groupId>`, `<artifactId>`, `<version>` 等元素来定义项目的坐标。 - **依赖声明**:使用 `<dependencies>` 元素来声明项目依赖。 ```xml ...
通常,开发者会创建多个Maven配置文件(profiles),每个文件对应一个特定的环境,然后通过filtering功能过滤资源文件中的变量,实现环境间配置的切换。 【标签】:“源码 工具” “源码”标签暗示了讨论可能涉及...
Maven Profile 机制是为了解决不同环境(如开发环境、测试环境等)下的配置差异问题。Profile 可以包含一组特定于环境的配置参数,比如数据库连接字符串或日志级别。Profile 可以在构建时手动激活,也可以通过环境...
Maven还允许通过`<profiles>`标签引入外部配置,这些配置可以根据环境变量或操作系统属性被激活。这对于不同环境(如开发、测试和生产)有不同的配置需求非常有用。 ### 8. Elasticsearch与Maven Elasticsearch是...
- `<localRepository>`标签定义本地仓库路径,将其更改为`<localRepository>E:/maven/maven-3.0.4/repo</localRepository>`。 - 在`<servers>`标签内添加服务器配置,用于身份验证,例如: ```xml <server> <id...
<localRepository>D:/Maven_Repository</localRepository> <!-- 本地仓库路径 --> <mirrors> <mirror> <id>my-mirror</id> <mirrorOf>*</mirrorOf> <!-- 镜像所有仓库 --> <url>http://myrepo.example.com</...
在这个配置中,`<id>`标签定义了profile的标识,`<activation>`部分设置了默认激活此profile的条件,`<jdk>`标签指定了JDK版本。`<properties>`标签内的属性设置了源码和目标代码的编译级别。 接下来,确保Eclipse...