在maven命令中传递环境变量

时间:2018-08-09 18:22:34

标签: java maven

我有一个如下所示的属性文件

testdb.username=AA
testdb.password=AA
testdb.port=1521
testdb.host=localhost

现在,我想将所有这4个键值对作为maven命令中的env变量传递。

一种方法是将每个键值对放在如下所示的maven命令中

mvn clean package -Dtestdb.username=A -Dtestdb.password=AA ....

我想知道Maven中有什么方法可以将整个属性文件传递给Maven,并且Maven可以读取属性文件并将所有键值对动态设置为maven命令中的env变量。

1 个答案:

答案 0 :(得分:2)

环境变量在Maven中的引用如下:

<properties>
    <testdb.username>${env.ENV_USERNAME}</testdb.username>
    <testdb.password>${env.ENV_PASSWORD}</testdb.password>
    <testdb.port>${env.ENV_PORT}</testdb.port>
    <testdb.host>${env.ENV_HOST}</testdb.host>
</properties>

但是,我认为您想要做的是这样的:

<properties>
    <!-- Default values -->
    <testdb.username>foo</testdb.username>
    <testdb.password>AA</testdb.password>
    <testdb.port>1521</testdb.port>
    <testdb.host>localhost</testdb.host>
</properties>

...

${testdb.username}

mvn clean package -Dtestdb.username=$USERNAME -Dtestdb.password=$PASSWORD -Dtestdb.port=$PORT -dtestdb.host=$HOST

希望您发现此信息有用!