我想在一个地方定义数据库url, username, password
。目前我有
application.properties
spring.datasource.url=....
spring.datasource.username=sa
spring.datasource.password=00
pom.xml
和
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>4.1.2</version>
<configuration>
<url>....</url>
<user>sa</user>
<password>00</password>
</configuration>
</plugin>
所以我可能需要重用application.properties
中定义的属性值。
此<password>${spring.datasource.password}</password>
不起作用。
我也试过
<systemProperties>
<systemProperty>
<name>url</name>
<value>....</value>
</systemProperty>
...
</systemProperties>
这两种方法都不起作用。
答案 0 :(得分:1)
您可以通过从pom文件构建属性文件来执行相反的操作。在您的属性文件中,您可以使用以下内容:
password=${pom.password}
你的pom文件会有类似的内容:
<password>your_db_password</password>
然后在:
mvn clean package
Maven将构建您的属性文件。
这是一个简单的教程:Add Maven Build Information ...
答案 1 :(得分:0)
正如 this 问题的前两个答案(如 rmlan 的评论中所建议的)所建议的那样,使用 properties-maven-plugin 如下:
<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>${basedir}/src/main/resources/application.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
然后使用您的 application.properties
执行以下操作:
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>4.1.2</version>
<configuration>
<url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password>
</configuration>
</plugin>