• maven占位符$变量无法替换


    问题:

    maven多module开发过程中,父module继承了

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
    <relativePath/>
    </parent>

    现在想实现配置文件的多环境运行,比如有application-sit.yml,application-uat.yml,想在application.yml文件中通过变量env控制不同的环境使用不同的配置文件,
    但是打包的时候发现怎么都替换不了,打包的命令:mvn clean package -DskipTests=true -Denv=uat 或者mvn clean package -DskipTests=true -Denv=sit,
    最后打完包application.yml还是如下
    spring:
    profiles:
    active: ${env}

    解决办法:
    加上标红的那句话
    <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
    <encoding>utf-8</encoding>
    <useDefaultDelimiters>true</useDefaultDelimiters>
    </configuration>
    </plugin>

    原因:
    spring-boot为了保护application.yml和application.properties,修改了默认的占位符${...}为@...@,受影响的应该是spring boot 1.3.0以上的版本,
    加上那句表示使用默认的占位符
  • 相关阅读:
    523. Continuous Subarray Sum
    517. Super Washing Machines
    516. Longest Palindromic Subsequence
    486. Predict the Winner
    467. Unique Substrings in Wraparound String
    474. Ones and Zeroes
    语法小结
    互评作业:使用数组
    466. Count The Repetitions
    1052 卖个萌 (20 分)
  • 原文地址:https://www.cnblogs.com/muzhao/p/8340331.html
Copyright © 2020-2023  润新知