spring-boot - flyway POM.XML 中的默认占位符
问题描述
我可以在 POM.XML 中使用飞行路径“默认占位符”吗?例如 ${flyway.url}、${flyway.user} 和 ${flyway.password} ?在 maven 执行 pom 之前,Flyway 会在运行时将这些占位符替换为 application.properties 或 application.yaml 文件中定义的值吗?
<build>
<plugins>
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>5.2.4</version>
<configuration>
<url>${flyway.url}</url>
<user>${flyway.user}</user>
<password>${flyway.password}</password>
</configuration>
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>${oracle.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
解决方案
在 Maven 和 Spring 之间共享配置的最简单方法可能如下:
src/main/resources/application.properties
spring.flyway.username=${flyway.username}
spring.flyway.password=${flyway.password}
...
flyway.username=user
flyway.password=SecretPa$$word
pom.xml
<properties>
<flyway.configFiles>${project.baseDir}/src/main/resources/application.properties</flyway.configFiles>
</properties>
或者,您可以使用 Properties Maven 插件:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${project.baseDir}/src/main/resources/application.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
如果您想在单独的.properties
文件中拥有 Flyway 属性,您还可以对application.properties/application.yaml
文件使用 Maven 资源过滤。
推荐阅读
- windows - 在cmd中的for循环内将变量写入txt文件
- scala - 如何从命令行运行scala文件?
- c# - 解压 TIF 文件中的 LZW 图像数据 - 图像数据不是以清晰的代码开头
- sql - 用 Pivot 替换子查询
- android - Kotlin Location is far from my location 我怎样才能让它更准确
- azure - 我可以在 Azure 资源管理器模板中将文件的内容作为字符串值包含或引用吗?
- javascript - 对象数组不按属性排序
- powershell - 如何通过powershell命令删除主机条目
- prolog - Prolog代码对列表中的元素进行求和的问题
- ios - UITableView 分页不能准确快速地工作