当使用 gradle build
命令从命令行构建时,属性字段被正确替换,但是,当使用 IntelliJ IDEA IDE
时,它不是。
代码在build.gradle
ext {
port = 8086
}
processResources {
filesMatching('application.properties') {
expand(project.properties)
}
}
代码在application.properties
server.port = ${port}
最佳答案
当您通过单击“运行”按钮在 IntelliJ 中运行 Spring Boot 应用程序时,它会以常规 java 命令启动,并且实际上不会运行任何 gradle 任务。因此,任务 processResources
不会运行。
您想要的是通过调用 gradle 任务 bootRun
在 IntelliJ 中运行您的项目。在IntelliJ的gradle工具窗口中点击你的项目展开它,然后展开Tasks
,展开application
,双击bootRun
。
您现在应该在 IntelliJ 的控制台中看到您的应用程序启动就像您使用 gradle bootRun
从命令行运行它一样。
编辑
如果您想保留在 IntelliJ 中单击运行/调试按钮的功能,您可以将 IDE 构建/运行操作委托(delegate)给 gradle,方法是在设置 | 下选择此选项构建、执行、部署 |构建工具 | Gradle |赛跑者。
关于java - Intellij spring boot 扩展 gradle 构建文件中的 processResources 以替换属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39437154/