+-
在Spring Boot中的application.properties中使用Maven属性
我正在尝试将属性从pom.xml加载到application.properties中.我想创建两个配置文件:dev和prod以使用不同的数据库URL.我在我的所有应用程序中使用Jenkins作为CI(主要是 Spring MVC,没有Boot项目)正在使用maven配置文件部署到Tomcat.使用maven属性有可能做到这一点吗?
我试过这样的事情:
spring.datasource.url = ${} jdbc.url
最佳答案
在执行此操作之前,请考虑从可部署包中外部化属性文件.这样,您就可以在每个环境中部署相同的编译.它将为你的Jenkins节省一些实际上不必要的工作.最佳做法是仅构建一次应用程序,但是,如果您不相信,这里是如何做到的.

>在pom.xml中,使用适当的属性值定义配置文件.

<profile>
    <id>dev</id>
   <properties>
       <jdbc.url>your_dev_URL</jdbc.url>
   </properties>
</profile>

>设置Maven Resources Plugin以过滤包含application.properties文件的目录.

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    ...
</build>

>如果您使用Spring Boot 1.3或更高版本,您应该意识到为避免Spring Boot占位符与Maven Resources Plugin过滤的令牌之间的冲突,该框架为过滤值引入了a solution that requires using a different syntax.

现在,改为${property.key}你应该使用@ property.key @.在这种情况下,您的application.properties必须包含以下示例才能按预期工作:

[email protected]@

您还可以查看有关separating Spring properties files for different Maven profiles的帖子.这样您就可以将pom.xml中的值外部化.

点击查看更多相关文章

转载注明原文:在Spring Boot中的application.properties中使用Maven属性 - 乐贴网