在 Maven 命令中传递环境变量

Abh*_*wal 6 java maven

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

testdb.username=AA
testdb.password=AA
testdb.port=1521
testdb.host=localhost
Run Code Online (Sandbox Code Playgroud)

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

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

mvn clean package -Dtestdb.username=A -Dtestdb.password=AA ....
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*lán 7

环境变量在 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>
Run Code Online (Sandbox Code Playgroud)

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

<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
Run Code Online (Sandbox Code Playgroud)

我希望这个信息对您有所帮助!