庄周梦蝶

生活、程序、未来

声明:本博客所有文章,未经允许,禁止转载。谢谢。

Leiningen 代理设置

| Comments

墙已经成为平常工作效率最大的敌人。由于我们内部的 maven 仓库也部署在海外,导致 Leiningen 下载依赖经常超时。你不得不走代理才能解决。这里记录下大部分要点。

首先修改 lein 脚本本身,默认不超时,建议加入超时设置,找到下面类似的代码:

1
2
3
4
5
6
7
8
9
10
 "$LEIN_JAVA_CMD" \
            "${BOOTCLASSPATH[@]}" \
            -Dfile.encoding=UTF-8 \
            -Dmaven.wagon.http.ssl.easy=false \
            -Dmaven.wagon.rto=600000 \
            $LEIN_JVM_OPTS \
            -Dleiningen.original.pwd="$ORIGINAL_PWD" \
            -Dleiningen.script="$SCRIPT" \
            -classpath "$CLASSPATH" \
            clojure.main -m leiningen.core.main "$@"

新增的配置选项是 -Dmaven.wagon.rto=600000,也就是 10 分钟超时。

其次,如果你有一个 HTTP 代理, lein 尊重 http_proxyhttps_proxy 环境变量,可以将下面代码加入 ~/.profile,也可以使用的时候 export 下:

1
2

http_proxy=http://username:password@proxy:port
https_proxy=http://username:password@proxy:port

设置代理后,所有 lein 发起的 http 请求都将走代理,你可以可以设置一个白名单避免代理:

1
http_no_proxy="*example1.com|*example2.com|*example3.com"

最后,如果你用的是 socks5 代理,比如 shadowsocks 搭建的代理服务器,那么可以安装 privoxy 将 socks5 转为 HTTP 代理:

1
$ brew install privoxy

安装后,默认配置在 /usr/local/etc/privoxy/config 文件,找到下面类似这行代码,修改成你的 socks5 代理配置:

1
    forward-socks5t   /               127.0.0.1:1080 .

我这里是 127.0.0.1:1080

默认 privoxy 监听在 8118 端口,因此设置 http_proxy 为该端口即可:

1
2
export https_proxy=http://127.0.0.1:8118
export http_proxy=http://127.0.0.1:8118

声明:本博客所有文章,未经允许,禁止转载。谢谢。

« 深夜杂感 编程小记: bug、clojure 状态和 paxos »

Comments