我们正在使用Eirslett Maven Frontend Plugin以标准方式帮助构建我们的NPM项目。这个前端负责我们的安装和其他问题。此外,它允许我们的开发人员通过mvn package
构建,就像他们使用我们的其他Java / Maven项目一样。
这是在我的本地计算机上构建一个代理警告,但它不会在我们的Jenkins服务器上构建。
我已配置$HOME/.npmrc
并且设置了http_proxy
和https_proxy
个环境变量。然而,我仍然得到一个没有代理设置错误。
$ set | grep "http.?_proxy"
http_proxy=http://proxy.xxxx.local:3128
https_proxy=https://proxy.xxxx.local:3128
$ cat $HOME/.npmrc
registry = http://registry.npmjs.org/
proxy = http://proxy.xxxx.local:3128/
https-proxy = https://proxy.xxxx.local:3128/
strict = false
ca = null
$ mvn clean package
[...]
[INFO] --- frontend-maven-plugin:0.0.24:install-node-and-npm (install node and npm) @ ihcm-config-tool ---
[INFO] Installing node version v0.12.2
[INFO] Creating temporary directory /opt/tomcat/jenkins_home/jobs/ihcm-config-tool-trunk/workspace/node_tmp
[INFO] Downloading Node.js from \\
http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz \\
to /opt/tomcat/jenkins_home/jobs/ihcm-config-tool-trunk/workspace/node_tmp/node.tar.gz
[INFO] No proxy was configured, downloading directly
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.968 s
[INFO] Finished at: 2016-07-18T11:53:39-05:00
[INFO] Final Memory: 15M/303M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal \
com.github.eirslett:frontend-maven-plugin:0.0.24:install-node-and-npm \
(install node and npm) on project ihcm-config-tool: Could not \
download Node.js: Could not download \
http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz: \
Connect to nodejs.org:80 [nodejs.org/104.20.23.46, \
nodejs.org/104.20.22.46] failed: Connection refused -> [Help 1]
我可以将http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x64.tar.gz下载到我的计算机上。我认为错误可能是代理,但我可能是错的。我应该寻找什么?
答案 0 :(得分:5)
发现问题。
Eirslett Maven Frontend插件不使用$http_proxy
或$HOME/.npmrc
文件中的代理设置。相反,我必须将代理设置放在我的$HOME/.m2/settings.xml
文件中。
我使用添加的代理设置创建了settings.xml
文件的特殊版本(只是为了确保不会影响其他项目)。我创建了$HOME/.m2/settings.proxy.xml
,然后通过mvn -s $HOME/.m2/settings.proxy.xml
调用了Maven。
我们使用具有自己的代理设置的Artifactory。我们已配置 NPM 以使用我们的Artifactory服务器进行下载。但是,Eirslett Maven Frontend插件也可以安装 NodeJS ,并且Artifactory不能设置为NodeJS的 HOME 。
我们希望Eirslett Maven Frontend插件安装 NodeJS (如果尚未安装)。通过这种方式,新开发人员只需运行mvn package
即可构建此项目,就像我们对所有其他项目一样。幸运的是,开发人员的机器不需要代理。但是,我们的Jenkins服务器位于企业内部防火墙后面,需要代理设置。