抱怨:对于像我这样苦逼的用户,机器在内网,干啥都要“偷偷”通过代理。
言归正传,jenkins\hudson默认并没有提供proxy设置,nexus仓库倒是提供里proxy设置。jenkins在“插件管理”>“高级”选型卡中可以进行代理设置,但这个代理的有效范围仅仅是更新插件。
我的需求是:jenkins的邮件通知功能,需要通过公网的smtp服务器进行发送。
问题来了,jenkins所在机器在内网,只能通过proxy访问公网,但是jenkins没有地方配置proxy。这点很不爽。
变态做法:在jenkins的启动参数中加入代理设置
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -DsocksProxyHost=132.*.*.123 -DsocksProxyPort=1080"
注意:因为jenkins使用的javamail进行邮件发送,javamail不支持http proxy但可以通过socket proxy代理发送邮件。