zoukankan      html  css  js  c++  java
  • 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文件!!!!即如下错误:

  • 相关阅读:
    拼图
    事件处理和手势
    分栏控制器2
    分栏控制器
    数据保存
    常用小控件
    导航
    人人界面按钮,页面跳转,传值
    TextField
    image
  • 原文地址:https://www.cnblogs.com/leodaxin/p/9882536.html
Copyright © 2011-2022 走看看