java - 如何通过 Maven 获取私有(private)用户名和密码进行测试?

标签 java maven environment-variables

为了连接到每个开发人员都有个人用户名和密码的外部系统,我需要将用户名和密码拉入我的 JUnit 测试用例:

String username = System.getProperty("ext.username");

上述行将在我的 test 文件夹中的任何类中调用

我怎样才能最好地通过 Maven 做到这一点?我认为该属性的最佳范围在 settings.xml 内,但我不确定将它从那里转移到我的代码中的最佳方式。

最佳答案

最好使用 Maven 构建配置文件解决该问题。

在您的 POM 中,您声明属性的默认值(以防止运行时可能出现的错误)。

<project>
..
    <properties>
        <ext.username>XXXXX</ext.username>
        <ext.password>YYYYY</ext.password>
    </properties>

然后每个开发人员都可以使用在其设置文件中指定的默认配置文件在本地构建中覆盖这些属性:$HOME/.m2/settings.xml

<settings>
    ..
    <profiles>
        <profile>
            <id>dev</dev>
            <activeByDefault>true</activeByDefault>
            <properties>
                <ext.username>XXXXX</ext.username>
                <ext.password>YYYYY</ext.password>
            </properties>
        </profile>
        ..
    </profiles>
    ..
</settings>

担心安全的也可以来encrypt the password .

最后,可以配置多个配置文件。这些可以在运行时选择(使用配置文件 ID)以支持多个构建环境:

mvn -Pdev  ..
mvn -Pprod ..

关于java - 如何通过 Maven 获取私有(private)用户名和密码进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8872981/

相关文章:

java - GroovyClassLoader 加载的类未列出

git - 如何让 Maven 发布插件通过 SSH 与 Git 一起使用?

maven - 使用 maven 在 kotlin 中编写 JSP - 实例化 servlet 类时出错,ClassNotFoundException

environment-variables - 特拉维斯 : Can you construct env var using other env vars?

reactjs - env-cmd 错误 : Failed to find . 路径中的 env 文件

java - 为什么背包实现需要 n 作为参数

java - Android 开发路线图

c - 须藤环境变量

java - JMockit - 期望 - 匹配调用包含模拟对象作为参数的方法

maven - Intellij IDEA 需要很长时间才能更新索引