我写了一个执行网络活动的maven插件。当我运行它时,我传递参数来表明它应该使用代理。
mvn myplugin:goal -Dhttps.proxyHost=nonexistent-site.com -Dhttps.proxyPort=8000
即使我将其指向不存在的代理,也会成功。它似乎绕过了代理,只是在代理不好的情况下直接进行网络调用。 (无论如何,这是我的理论。可能是我甚至没有正确设置代理)
我还编辑了maven settings.xml并添加了错误的代理主机,但它也无声地失败。
如果我将参数添加到MAVEN_OPTS
,则相同如果代理错误,如何使网络呼叫失败?
答案 0 :(得分:0)
我只是想出了问题,感谢@Tunaki。
原来我使用的库(com.mashape.unirest.http.Unirest)不尊重java代理设置。该问题已在@Tunaki上述评论中记录/链接。
这里的教训是,如果您使用的网络库不是jdk的一部分,请确保它尊重Java设置。 在Unirest的情况下,我不得不像这样手动创建代理
HttpHost proxy = new HttpHost(System.getProperty("https.proxyHost")
, new Integer(System.getProperty("https.proxyPort")));
Unirest.setProxy(proxy);
我不确定这个问题或答案是否对任何人都有帮助。如果它适用的话,我现在就把它留在这里。但是如果有人评论我应该删除这个或者我得到几个downvotes,我会删除这个问题。