2016-07-18 44 views
1

我們使用Eirslett Maven Frontend Plugin以標準方式幫助構建我們的NPM項目。這個前端負責爲我們安裝和其他問題。另外,它允許我們的開發人員通過mvn package來構建,就像他們對其他Java/Maven項目所做的一樣。NPM前端代理集但無法下載NPM包

這建立在我的本地機器上,帶有代理警告,但它不會建立在我們的Jenkins服務器上。

我已配置$HOME/.npmrc,並且同時設置了http_proxyhttps_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下載到我的機器上。我認爲這個錯誤可能是代理人,但我可能是錯的。任何我應該尋找的東西?

回答

1

發現問題。

Eirslett Maven Frontend Plugin不使用$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 Plugin也可以安裝NodeJS,並且Artifactory不能設置爲NodeJS的主頁

我們希望Eirslett Maven Frontend插件能夠安裝NodeJS如果它尚未安裝。這樣,一位新開發人員就可以通過運行mvn package來構建該項目,就像我們所有其他項目一樣。幸運的是,開發人員的機器不需要代理。但是,我們的Jenkins服務器位於公司內部防火牆的後面,需要代理設置。