`
TimerBin
  • 浏览: 358696 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

profile filters properties 无法替换问题总结

阅读更多

基于maven pom配置中的profiles配置针对不同环境,使用不同配置文件。

 

第一步:创建filters资源文件(src/main/filters/dev.properties、test.properties、beta.properties),其中路径地址/名称任意设置。

dev.properties

 

mysql.url=jdbc:mysql://xx.xx.xx.xx:3306/xx

 

 

第二步:创建配置文件(src/main/resources/settings.properties),对第一步配置资源进行使用。

settings.properties

 

mysql.url=${mysql.url}

 可使用如下命令将配置文件导入到spring容器中

<context:property-placeholder location="classpath:settings.properties"/>

 

也可在spring配置文件中直接使用(src/main/resources/spring.xml)

spring.xml

 

<bean  class="xx.xx.xx.xx.xx.xx">
    <property name="url" value="${mysql.url}" />
</bean>

 

第三步:在pom中配置profile

    pom.xml 

<profiles>
	<profile>
		<id>dev</id>
		 <build>
			<filters>
				<filter>src/main/filters/dev.properties</filter>
			</filters>
		 </build>
                 <!-- 定义其为默认加载 -->
		 <activation>
			<activeByDefault>true</activeByDefault>
		 </activation>
	</profile>
	<profile>
		<id>test</id>
		 <build>
			<filters>
				<filter>src/main/filters/test.properties</filter>
			</filters>
		 </build>
	</profile>
	<profile>
		<id>beta</id>
		 <build>
			<filters>
				<filter>src/main/filters/beta.properties</filter>
			</filters>
		 </build>
	</profile>

 将其添加到pom的<project>标签内部。

 

第四步(关键一步):maven打包时激活filters过滤。

pom.xml

<build>
         <!-- 定义项目打包后的名称 -->
	<finalName>pojo-name</finalName>
	<resources>
		<resource>
                         <!-- 对该目录下的配置build时启用filter 过滤替换-->
			<directory>src/main/resources</directory>
			<filtering>true</filtering>
		</resource>
	</resources>
</build>

 

 

第五步:执行打包命令

mvn package -P dev

其中 -P 指定编译的profile

 

问题分享:

在使用过程中,配置与以上配置完全相同,但始终无法对${mysql.url}等参数进行替换,最终导致的问题是,我在eclipse-->properties-->java build path-->source 配置中将src/main/resources默认编译到了src/main/webapp/WEB-INF/classes 目录下(未替换文件-错误文件),导致在执行mvn 命令时,由于未进行mvn清理,mvn是直接将src/main/webapp/WEB-INF/classes拷贝到了target/obj-name/WEB-INF/下面,而不是经过build filter重新生成的配置文件!解决方案:删除src/main/webapp/WEB-INF/classes下配置文件,让其在mvn package -P dev 时重新生成!

 

 

 

 

 

分享到:
评论

相关推荐

    VMware7.0虚拟机硬盘无法编辑,无法连接到Profile-Driven Storage Service

    在使用VMware vSphere 7.0时,可能会遇到虚拟机硬盘无法编辑或者无法连接到Profile-Driven Storage Service的问题。这种情况通常与存储配置、vSphere Client连接问题、虚拟机设置或者服务状态有关。以下是一些可能...

    SpringBoot中的Profile配置的使用示例源码

    - 在`application.properties`或`application.yml`中定义多个profile,如`application-dev.properties`和`application-prod.properties`,分别对应开发和生产环境。 - 使用`spring.profiles.active`属性激活...

    VMware vSphere 磁盘无法增加容量,报错:无法连接到Profile-Driven Storage Service

    VMware vSphere 磁盘无法增加容量,报错:无法连接到Profile-Driven Storage Service

    was managerprofile语法

    dataLocation &lt;data_location&gt; -profileName &lt;profile_name&gt; -templateLocation &lt;template_location&gt; [-serverName ] [-cellName ] [-nodeName ] [-hostName ] [-wasInstallDir ] [-propertiesFile &lt;properties_file...

    Mesh Profile Specification&&Model Specification&&Device Properties

    Mesh Profile(网状配置文件): 定义了基本要求,以实现用于蓝牙LE无线技术的可互操作的网状网络解决方案 Model Specification: 介绍模型,用于定义mesh网络上节点的基本功能 Device Properties: 定义mesh模型...

    Mesh Profile Specification&&Model; Specification&&Device; Properties

    Mesh Profile、Mesh Model以及Mesh Device Properties是构建和理解Bluetooth Low Energy (BLE) Mesh网络的关键概念。以下是对这些概念的详细解释: 1. **Mesh Profile Specification**(Mesh配置文件规范) Mesh...

    Windows下Neor Profile SQL 配置监控centos(linux)mysql详细步骤

    - 其中,`localhost` 应替换为Neor Profile SQL所在机器的地址,`port` 为Neor Profile SQL监听的端口。 4. **查看监控结果**: - 启动应用程序,开始进行数据库操作。 - 在Neor Profile SQL的“Flow”标签页中...

    Qt:解决使用png图片时,报错libpng warning: iCCP: known incorrect sRGB profile的问题

    3. Qt版本问题:某些旧版本的Qt可能对iCCP的支持不够完善,无法正确处理不兼容的色彩配置。 针对以上问题,我们可以采取以下策略来解决或避免这个错误: 1. 检查并修正图像源:使用图像编辑软件(如Adobe Photo...

    asp.net profile

    ASP.NET Profile是.NET框架提供的一种内置机制,用于存储和检索用户特定的信息,它允许开发者创建自定义的用户配置部分,方便地在多个页面之间共享和持久化用户数据。在这个"asp.net profile"压缩包中,我们可以看到...

    ASP.NET AJAX深入浅出系列课程(14):Profile Service的实现方式与扩展

    最后,我们还将讨论Profile Service与其他ASP.NET特性的集成,如 Membership 和 Role Management,以及如何在分布式环境中处理Profile数据的一致性问题。通过学习这部分内容,你将能够更好地理解和掌握如何在实际...

    springboot实现properties实现多环境配置1

    这可以通过`Environment`接口的`activeProfiles()`方法获取当前激活的Profile,或者使用`PropertySourcesPlaceholderConfigurer`进行动态替换。 ### 8. 多环境配置的最佳实践 - 将环境相关的敏感信息(如数据库...

    maven profile多环境配置

    Maven Profile 多环境配置 Maven 是一个流行的项目管理工具,广泛应用于 JAVA 相关的项目中。为了实现多环境的构建可移植性,Maven 提供了 Profile 机制。通过不同的环境激活不同的 Profile,可以达到构建的可移植...

    使用maven Profile实现多环境构建

    Maven作为Java项目管理的强大工具,提供了Profile功能来解决这个问题。Profile允许我们在一个项目中定义多个构建配置,每个配置对应一个特定的环境。下面将详细讲解如何使用Maven Profile实现多环境构建。 首先,让...

    profile\bashrc\bash_profile之间的区别和联系

    在Linux系统中,环境变量和命令的设置是通过配置文件来完成的,这些配置文件包括`/etc/profile`, `/etc/bashrc`, `~/.bash_profile`以及`~/.bashrc`。理解它们的区别和联系对于优化用户环境和个性化设置非常重要。 ...

    使用Photoshop编辑数码打样的ICC Profile

    6. **问题解决**:如果打印颜色与预期不符,可能需要调整ICC Profile、色彩设置,或者进行设备校准。Photoshop提供了“色彩校正”滤镜和“色彩查找”功能来微调色彩。 7. **保存和导出**:在导出图像时,可以选择...

    Windows用户目录迁移工具 Profile Relocator

    为了解决这个问题,我们可以使用一款名为"Profile Relocator"的工具,该工具专门用于帮助用户将Windows的用户目录整体迁移至其他目标分区,从而释放C盘空间。 Profile Relocator是一款针对Windows XP、Vista、7和8...

    springboot的profile的例子

    总结起来,Spring Boot的Profile功能使得我们可以轻松地管理不同环境的配置,通过`spring.profiles.active`、命令行参数、系统环境变量以及`@Profile`注解,我们可以灵活地切换和定制环境特定的配置。这在多环境部署...

    lenovo low profile usb keyboard的win10解决方案

    在Windows 10操作系统环境下,有时可能会遇到与这款键盘的兼容性问题,导致键盘无法正常工作或者功能受限。描述中提到的“win10解决方案”即为针对这些问题的有效处理方法。 在Windows 10系统中,可能会出现以下几...

    VsCode配置-profile

    VsCode配置-profile

Global site tag (gtag.js) - Google Analytics