小编Jak*_*dle的帖子

无法使用 Maven 代理端口的环境变量

我能够使用settings.xml配置代理以成功与 Maven 一起使用。

我决定进一步进行配置,并为每个代理的参数使用环境变量,如下所示:

<proxies>
  <proxy>
    <active>true</active>
    <protocol>https</protocol>
    <host>${env.PROXY_HOST}</host>
    <port>${env.PROXY_PORT}</port>
    <username>${env.PROXY_USER}</username>
    <password>${env.PROXY_PASSWORD}</password>
  </proxy>
</proxies>
Run Code Online (Sandbox Code Playgroud)

此配置(特别是使用端口环境变量)会导致我的 Maven 执行中断。首先它通过了这个警告:

[WARNING] 
[WARNING] Some problems were encountered while building the effective settings
[WARNING] Unable to parse element 'port', must be an integer (position: END_TAG seen ...<port>${env.PROXY_PORT}</port>... @29:40) caused by: java.lang.NumberFormatException: For input string: "${env.PROXY_PORT}" @conf/settings.xml, line 29, column 40
[WARNING] 
Run Code Online (Sandbox Code Playgroud)

由于端口不正确,执行很快就会失败:

org.eclipse.aether.transfer.MetadataTransferException: 
Connect to localhost:0 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)
Run Code Online (Sandbox Code Playgroud)

Maven 能够解析代理设置中的主机、用户和密码的环境变量,但不能解析端口。

下面是如何在 bash 脚本中设置环境变量,然后执行 Maven 命令的示例

PROXY_PORT=8888
export PROXY_PORT …
Run Code Online (Sandbox Code Playgroud)

linux maven-3 maven

5
推荐指数
1
解决办法
3239
查看次数

标签 统计

linux ×1

maven ×1

maven-3 ×1