我有一个休息客户端实现。由于它是客户端,因此需要使用真实凭据进行集成测试。但是,我不想将这些内容作为源代码属性的一部分进行检查,特别是因为它将被检入github。
我正在使用PropertyPlaceHolderConfigurer
来加载属性并将它们注入我的bean中。我可以设置的其中一个属性是
<property name="systemPropertiesMode">
<!-- this configuration is for security and forces these to be passed on commandline since they are dummy values in config-->
<util:constant
static-field="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
</property>
这允许我在发布时在命令行上提供这些属性,因为我可以成功获得发布版本。
mvn clean install -Dapp.username=foo -Dapp.password=bar
顺利运行。测试成功。
mvn clean release:prepare release:perform -Dapp.username=foo -Dapp.password=bar
失败,因为替换没有发生(我的日志很清楚)。
我试过了:
mvn clean release:prepare release:perform -Darguments="-Dapp.username=foo -Dapp.password=bar"
这并不起作用。
我还尝试在我的settings.xml中添加一个配置文件以供发布:
<profile>
<id>release</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<app.username>foo</app.username>
<app.password>bar</app.password>
</properties>
</profile>
那也失败了。
我无法检查这些凭据,但我需要能够将它们用于发布和合法测试。文件中的属性是虚拟值并进行注释,以便下次有人知道需要做什么。
有没有其他方法可以解决这个问题,或者我只是没有采取正确的方法