繁体   English   中英

如何在 Maven pom.xml 中重用 application.properties (Spring Boot) 中的属性?

[英]How to reuse properties from application.properties (Spring Boot) in Maven pom.xml?

我想在一个地方定义数据库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>

这两种方法都不起作用。

你可以通过从你的 pom 文件构建一个属性文件来做相反的事情。 在您的属性文件中,您将使用以下内容:

password=${pom.password}

你的 pom 文件会有类似的内容:

<password>your_db_password</password>

然后在:

mvn clean package

Maven 将构建您的属性文件。

这是一个简单的教程: 添加 Maven 构建信息...

正如这个问题的前两个答案(如 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM