maven-resources-plugin插件关于占位符不生效问题
插件版本:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<!-- 覆盖原有文件 -->
<!--<overwrite>true</overwrite>-->
<!--<outputDirectory>${project.build.outputDirectory}</outputDirectory>-->
<filters>
<!--<filter>src/main/resources/${env}/application.yml</filter>-->
<filter>src/main/resources/${env}/app.properties</filter>
</filters>
<resources>
<resource>
<!-- 指定resources插件处理哪个目录下的资源文件 -->
<directory>src/main/resources/</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</configuration>
</plugin>
项目资源结构:
使用maven profile 传入值将application.yml的变量值填充到spring下面xml中的占位符,实际发现无论怎么样都不生效!!!!
最后怀疑是该插件不支持yml填充的原因,结果修改为:
在传入变量值发现一切OK!
maven debug插件方案参见:https://medium.com/@prabushi/debug-maven-plugin-while-the-application-is-executed-b602ea2803f8
具体做法就是使用:mvnDebug命令,例如传入一个Profile的命令式:mvnDebug package -P prod ;然后需要使用remote debug进行连接!!!
源码分析:
org.apache.maven.shared.filtering.BaseFilter#createInterpolator 加载解析配置占位符的文件,通常就是properties文件。
org.apache.maven.shared.filtering.BaseFilter#getDefaultFilterWrappers(org.apache.maven.shared.filtering.AbstractMavenFilteringRequest)加载配置文件
最终其实使用的是org.apache.maven.shared.filtering.BaseFilter#loadProperties方法加载配置到Proerties对象中!!!
结论就是:maven-resources-plug不支持yml作为占位符值的配置文件!!!就是不不支持yml格式文件,必须使用properties文件!!!!即如下错误:
maven-resources-plugin插件关于占位符不生效问题的更多相关文章
- Spring Boot使用Maven打包替换资源文件占位符
在Spring Boot开发中,通过Maven构建项目依赖是一件比较舒心的事,可以为我们省去处理冲突等大部分问题,将更多的精力用于业务功能上.近期在项目中,由于项目集成了其他外部系统资源文件,需要根据 ...
- maven release plugin插件
1.打包版本区别 SNAPSHOT 快照版本(开发阶段,不稳定,容易出现bug)RELEASE 正式版本(外部依赖使用阶段,稳定,很少出现bug)Tag :标记每次代码提交的版本(比较稳定,类似分支) ...
- Maven版本管理-Maven Release Plugin插件
一.什么是版本管理 首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基 ...
- maven 编译替换占位符
首先开启资源配置的插件,由此插件替换占位符 <plugin> <groupId>org.apache.maven.plugins</groupId> <art ...
- Placeholdem文本域占位符符号标识JavaScript插件
Placeholdem是文本域占位符符号标识的一个JavaScript插件.占位符的值将逐步删除焦点文字,并在焦点离开逐步恢复. 在线demo:http://placeholdem.jackrugil ...
- 记录一次maven打包时将test目录下的类打包到jar中,Maven Assembly Plugin的使用
今天有人问我打包后找不到主类,运行的类写在test中.按照常规,test目录下的文件不会打包到jar包中.(但是我测试一个springboot工程就可以,这里之后再研究) 具体解决如下 第一步:在po ...
- maven占位符
maven占位符默认是${} 也可以自己指定. pom.xml配置如下: <plugin> <groupId>org.apache.maven.plugins</grou ...
- maven如何过滤占位符
今天遇到一个问题,就是properties文件中赋值用的这种形式${xxx},真正的值是配置在pom的profile中,但是未生效. 后来找到原因,原来是pom中少了一段代码: <build&g ...
- 聊聊 SpringBoot 中的两种占位符:@*@ 和 ${*}
前言 在 SpringBoot 项目中,我们经常会使用两种占位符(有时候还会混用),它们分别是: @*@ ${*} 如果我们上网搜索「SpringBoot 的占位符 @」,大部分答案会告诉你,Spri ...
随机推荐
- 《Redis开发与运维》读书笔记
一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争问题 基于键值对的数据结构,支持的数据结构丰富.它 ...
- 如何实现JavaScript的Map和Filter函数?
译者按: 鲁迅曾经说过,学习JavaScript最好方式莫过于敲代码了! 原文: Master Map & Filter, Javascript’s Most Powerful Array F ...
- IE浏览器的ActiveXObject对象以及FileSystemobject的应用扩展(完成)
ActiveXObject 对象 启用和返回对自动化对象的引用.此对象仅用于实例化自动化对象,且此对象没有成员. 警告:此对象为 Microsoft 扩展,仅在 Internet Explorer 中 ...
- 2018-12-16 VS Code英汉词典进化效果演示: 翻译文件所有命名
续VS Code英汉词典插件v0.0.7-尝试词性搭配, 下一个功能打算实现文件的批量命名翻译: 批量代码汉化工具 · Issue #86 · program-in-chinese/overview ...
- Android项目实战(四十):Andoird 7.0+ 安装APK适配
首先看一下安装apk文件的代码 /** * 通过隐式意图调用系统安装程序安装APK */ public static void install(Context context) { Intent in ...
- android build 编译打印详细过程
我们在make otapackage编译android代码的时候,有时候需要跟踪详细的过程,包括所有的过程,可以修改build/core/Makefile,赋值hide := 为空即可
- java后台打开浏览器代码
import java.awt.Desktop; import java.io.IOException; import java.net.URI; import java.net.URISyntaxE ...
- LeetCode题解之Clone Graph
1.题目描述 2.问题分析 要遍历图,然后标记没有被复制的节点. 3.代码 class Solution { private: unordered_map<Node*, Node*> m; ...
- MS SQL批量生成作业脚本方法介绍总结
在迁移或升级SQL Server数据库服务器时,很多场景下我们不能还原msdb,所以我们必须手工迁移SQL Server相关作业.如果手工生成每一个作业的脚本话,费时又费力,其实SQL Server中 ...
- c函数指针
#include <stdio.h> int max(int a, int b){ return a > b ? a : b; } int min(int a, int b){ re ...