+-

我正在尝试将属性从pom.xml加载到application.properties中.我想创建两个配置文件:dev和prod以使用不同的数据库URL.我在我的所有应用程序中使用Jenkins作为CI(主要是 Spring MVC,没有Boot项目)正在使用maven配置文件部署到Tomcat.使用maven属性有可能做到这一点吗?
我试过这样的事情:
spring.datasource.url = ${} jdbc.url
我试过这样的事情:
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属性 - 乐贴网