我不太明白如何使用它。文件中定义了一个属性。我尝试使用 maven 属性插件来读取并保存。该属性用于 liquibase 插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>src/main/resources/properties/app.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.5</version>
<configuration>
<propertyFile>src/main/resources/db/config/${env}-data-access.properties</propertyFile>
<changeLogFile>src/main/resources/db/changelog/db.changelog-master.xml</changeLogFile>
<migrationSqlOutputFile>src/main/resources/db/gen/migrate.sql</migrationSqlOutputFile>
<!--<logging>debug</logging>-->
<logging>info</logging>
<promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
<!--<verbose>false</verbose>-->
<dropFirst>true</dropFirst>
</configuration>
</plugin>
根据文档,为了读取属性并保存它,我必须运行:
mvn properties:read-project-properties
. 但在这种情况下,我收到以下错误:[错误] 无法在项目 SpringWebFlow 上执行目标 org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2:read-project-properties (default-cli):目标 org.codehaus 的参数“文件”。 mojo:properties-maven-plugin:1.0-alpha-2:read-project-properties 丢失或无效 -> [帮助 1]
我更改了 pom.xml,删除了该<execution>
部分并移动了该<configuration>
部分:
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<configuration>
<files>
<file>src/main/resources/properties/app.properties</file>
</files>
</configuration>
好的。现在,当我运行 mvn properties:read-project-properties 时,错误消失了。但是在这种情况下,属性保存在哪里?因为当我开始以下 Maven 目标时:
mvn liquibase:update
我可以看到 ${env} 属性没有定义。Liquibase 尝试使用该src/main/resources/db/config/${env}-data-access.properties
文件。
我究竟做错了什么?如何从文件中读取属性,以便可以从不同的 Maven 插件访问?