maven发布:准备不尊重系统属性

时间:2014-05-30 18:34:49

标签: java maven pom.xml

我有一个休息客户端实现。由于它是客户端,因此需要使用真实凭据进行集成测试。但是,我不想将这些内容作为源代码属性的一部分进行检查,特别是因为它将被检入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>

那也失败了。

我无法检查这些凭据,但我需要能够将它们用于发布和合法测试。文件中的属性是虚拟值并进行注释,以便下次有人知道需要做什么。

有没有其他方法可以解决这个问题,或者我只是没有采取正确的方法

0 个答案:

没有答案