`
TimerBin
  • 浏览: 360579 次
  • 性别: 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 时重新生成!

 

 

 

 

 

分享到:
评论

相关推荐

    myProFile0170.properties

    myProFile0170.properties

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

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

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

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

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

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

    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`。理解它们的区别和联系对于优化用户环境和个性化设置非常重要。 ...

    Windows用户目录迁移工具 Profile Relocator

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

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

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

    springboot的profile的例子

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

    power delay profile.rar_Power delay profile_delay

    在无线通信领域,"Power Delay Profile"(功率延迟剖面)是分析信号传播特性的重要概念。这个主题主要涉及信号在传播过程中的能量分布以及不同路径到达接收器的时间差。通过模拟"power delay profile",我们可以深入...

    lenovo low profile usb keyboard的win10解决方案

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

Global site tag (gtag.js) - Google Analytics