【问题标题】:How to reuse properties from application.properties (Spring Boot) in Maven pom.xml?如何在 Maven pom.xml 中重用 application.properties (Spring Boot) 的属性?
【发布时间】:2017-08-27 10:25:57
【问题描述】:

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

这个&lt;password&gt;${spring.datasource.password}&lt;/password&gt; 不起作用。 我也试过了

 <systemProperties>
    <systemProperty>
      <name>url</name>
      <value>....</value>
    </systemProperty>
    ...
 </systemProperties>

这两种方法都行不通。

【问题讨论】:

标签: java maven spring-boot flyway


【解决方案1】:

您可以通过从您的 pom 文件构建一个属性文件来执行相反的操作。在您的属性文件中,您可以使用以下内容:

password=${pom.password}

你的 pom 文件会是这样的:

<password>your_db_password</password>

然后在:

mvn clean package

Maven 将构建您的属性文件。

这里有一个简单的教程:Add Maven Build Information ...

【讨论】:

    【解决方案2】:

    正如 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>
    

    【讨论】:

      猜你喜欢
      • 2016-08-10
      • 2017-06-17
      • 1970-01-01
      • 2017-09-19
      • 2018-08-15
      • 2013-12-02
      • 2020-06-22
      • 2021-05-17
      • 2022-01-09
      相关资源
      最近更新 更多