我正在寻找最好的方法,以便我可以在maven pom文件中导入.properties文件,该文件将属性文件中的属性设置为系统属性。
例如,我有一个dev.properties文件,其中包含特定于开发人员的系统属性,这意味着dev.properties文件不会保存在源代码存储库中。
我遇到了maven属性插件,但是这并没有将文件中找到的属性设置为系统属性,这是我的pom文件中此插件的声明:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
</execution>
</executions>
<configuration>
<files>
<file>${basedir}/dev.properties</file>
</files>
</configuration>
</plugin>
但在我的java代码中,当我运行测试目标或jacoco报告目标时,我使用System.getProperties(“prop1”);,例如,我总是返回null,这导致我的测试失败。这在maven有可能吗?我是在正确的轨道上吗?
答案 0 :(得分:1)
我建议使用相同插件的目标set-system-properties,或者您也可以使用通常的方法设置系统属性,方法是在通过您的配置读取它们之后使用这些属性进行单元测试:< / p>
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<configuration>
<systemPropertyVariables>
<propertyName>propertyValue</propertyName>
<buildDirectory>${project.build.directory}</buildDirectory>
[...]
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>