IntelliJ IDEA配置科学上网代理

发布于 2018-12-06 | 更新于 2024-03-02

为IDEA配置 HTTP Proxy

在用idea编译一些开源项目的时候,我们经常会遇到拉取不到依赖包的情况。由于墙太高了,我在编译某个项目的时候也遇到了这种情况: 一直卡在这里,我们发现是jetbrains.com连不上,为了解决这个问题,我们需要对idea配置一下科学上网,我们打开idea的settings界面,找到Http Proxy配置,如下图: 在这里选择Manual proxy configuration,填写代理的IP和端口即可,最后一个输入框记得填写无需代理的域名,方便墙内的网站可以快速访问。 这里我是使用了lantern的代理,可以在蓝灯的设置界面中找到代理的IP和端口号:

为Gradle设置国内镜像仓库

在项目的build.gradle文件中添加仓库地址配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
buildscript {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
}
}

如果要全局剩下,则需要到用户目录下的 .gradle 目录下面创建一个 init.gradle 文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
}
}
maven {
url ALIYUN_REPOSITORY_URL
url ALIYUN_JCENTER_URL
}
}
}

如果Idea开启了HTTP Proxy,可以在No proxy for规则里面添加阿里云域名,让阿里云域名的请求直接走墙内网络即可:

192.168., 172.22., *.aliyun.com

References

gradle配置国内镜像

本文作者: arthinking

本文链接: https://www.itzhai.comintellij-idea-proxy-settings.html

版权声明: 版权归作者所有,未经许可不得转载,侵权必究!联系作者请加公众号。

×
IT宅

关注公众号及时获取网站内容更新。