그래들 프록시 구성
Jenkins를 위해 Gradle/Artifactory 통합을 사용하려면 프록시 서버를 통해 Gradle에서 웹 액세스가 필요합니다.문제의 원인을 줄이기 위해 수동으로 build.gradle에 아티팩트리 플러그인을 추가하고 명령줄에서 실행합니다.
apply {
apply from: "http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle"
}
이 설명에 따라 홈디렉토리의 .gradle/gradle.properties에서 다음을 지정했습니다.
systemProp.http.proxyHost=hostname
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=de\\username
systemProp.http.proxyPassword=xxx
상기의 프록시 설정(동작하고 있는 것으로 알려진 것)에서는, 다음의 조작에 실패합니다.
11:33:17.699 [ERROR][org.gradle]Build Exception Reporter] 원인: java.ioIOException:서버가 URL: http://gradle.artifactoryonline.com/gradle/plugins/org/jfrog/buildinfo/build-info-extractor-gradle/1.0.1/artifactoryplugin-1.0.1.gradle에 대해 HTTP 응답 코드: 407을 반환했습니다.
수 있는 , "2" "1"로 은 "1"407
(프록시 인증 필요), 이제1개는502
(Bad Gateway) 즉 proxyHost 옵션과 proxyPort 옵션이 사용됩니다.
사용자 에되어 있기 에 둘 다 했습니다.\\
★★★★★★★★★★★★★★★★★」\
이랬어요.Active Directory를 사용합니다.이 사용자의 자격 증명이 프록시에 유효하지 않으므로 다른 사용자를 지정할 수 있어야 합니다.
Jenkins' 또는 Architory의 GUI에서 동일한 옵션을 설정하면 작동했습니다.
Daniel의 답변에 대한 개선:
HTTP만의 프록시 설정
gradlew -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 "-Dhttp.nonProxyHosts=*.nonproxyrepos.com|localhost"
HTTPS만의 프록시 설정
gradlew -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3129 "-Dhttp.nonProxyHosts=*.nonproxyrepos.com|localhost"
HTTP 및 HTTPS 프록시 설정
gradlew -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3129 "-Dhttp.nonProxyHosts=*.nonproxyrepos.com|localhost"
사용자 및 비밀번호를 사용한 프록시 구성
gradlew -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 - Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=3129 -Dhttps.proxyUser=user -Dhttps.proxyPassword=pass -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass -Dhttp.nonProxyHosts=host1.com|host2.com
.gradle.properties
홈디르 또는 프로젝트 디르 중 하나에서 빌드가 여전히 실패하였습니다.)이 회피책을 제시해 준 gradle에게 문제를 지적해 주셔서 감사합니다.레퍼런스 문서는 https://docs.gradle.org/current/userguide/build_environment.html#sec:accessing_the_web_via_a_proxy 에서 참조할 수 있습니다.
업데이트 이러한 속성을 다음 위치에 저장할 수도 있습니다.gradle-wrapper.properties
(https://stackoverflow.com/a/50492027/474034) 를 참조해 주세요.
이것은 my gradle.properties입니다.HTTPS 부분에 주의해 주세요.
systemProp.http.proxyHost=127.0.0.1
systemProp.http.proxyPort=8118
systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=8118
의 마마 my에서는build.gradle
설정을 .Linux 프록시 설정입니다.HTTP_PROXY
★★★★★★★★★★★★★★★★★」HTTPS_PROXY
env: , " " 에서:
task setHttpProxyFromEnv {
def map = ['HTTP_PROXY': 'http', 'HTTPS_PROXY': 'https']
for (e in System.getenv()) {
def key = e.key.toUpperCase()
if (key in map) {
def base = map[key]
def url = e.value.toURL()
println " - systemProp.${base}.proxy=${url.host}:${url.port}"
System.setProperty("${base}.proxyHost", url.host.toString())
System.setProperty("${base}.proxyPort", url.port.toString())
}
}
}
build.dependsOn setHttpProxyFromEnv
저는 이 설정을 프로젝트의 gradle.properties 파일에 추가하는 작업을 합니다.여기서 build.gradle 파일은 다음과 같습니다.
systemProp.http.proxyHost=proxyURL
systemProp.http.proxyPort=proxyPort
systemProp.http.proxyUser=USER
systemProp.http.proxyPassword=PASSWORD
systemProp.https.proxyHost=proxyUrl
systemProp.https.proxyPort=proxyPort
systemProp.https.proxyUser=USER
systemProp.https.proxyPassword=PASSWORD
여기서 proxyUrl은 프록시 서버의 URL입니다(http://.....).
proxyPort는 포트(통상은 8080)입니다.
USER는 내 도메인 사용자입니다.
패스워드, 내 패스워드
이 경우 http와 https의 프록시는 동일합니다.
c:\Users\your username\.gradle\gradle.properties에서 체크 아웃합니다.
systemProp.http.proxyHost=<proxy host>
systemProp.http.proxyPort=<proxy port>
systemProp.http.proxyUser=<proxy user>
systemProp.http.proxyPassword=<proxy password>
systemProp.http.nonProxyHosts=<csv of exceptions>
systemProp.https.proxyHost=<proxy host>
systemProp.https.proxyPort=<proxy port>
systemProp.https.proxyUser=<proxy user>
systemProp.https.proxyPassword=<proxy password>
systemProp.https.nonProxyHosts=<csv of exceptions seperated by | >
다음을 시도해 보십시오.
gradle -Dhttp.proxyHost=yourProxy -Dhttp.proxyPort=yourPort -Dhttp.proxyUser=usernameProxy -Dhttp.proxyPassword=yourPassoword
매우 간단한 "Request a URL" Java 프로그램을 사용하여 문제를 재현할 수 있었습니다.
http.proxyUser
★★★★★★★★★★★★★★★★★」http.proxyPassword
Gradle 매뉴얼에 기재되어 있지만, Gradle 튜토리얼에서 링크된 Java 레퍼런스 페이지에는 기재되어 있지 않기 때문에, 인기 있는 옵션이라고는 해도, 비표준의 옵션인 것 같습니다.
프록시 인증을 서포트하고 싶은 Java 프로그램은 수동으로 할 필요가 있는 것 같습니다(링크 페이지의 코드를 사용하여 할 수 있었습니다).
저는 이 이슈(및 수정)를 Gradle 이슈 트래커에 제출했습니다.문제가 된 GRADLE-1556은 1.0-milestone-8(2012년 2월)로 해결되었습니다.
하다라는 을 만들어 보세요.gradle.properties
내 ( 폴더 내)에 있습니다.build.gradle
파일이 존재합니다. 엔트리를 추가합니다.
systemProp.http.proxyHost=proxy_url
systemProp.http.proxyPort=proxy_port
systemProp.http.proxyUser=USER
systemProp.http.proxyPassword=PWD
systemProp.https.proxyHost=proxy_url
systemProp.https.proxyPort=proxy_port
systemProp.https.proxyUser=USER
systemProp.https.proxyPassword=PWD
를 하고 있는 는, 「DNS」와 합니다.systemProp.https.proxyHost=www.proxysite.com
의 는, out IP 를 를 합니다.http://
★★★★★★★★★★★★★★★★★」https://
글로벌 레벨에서의 프록시 설정 및 자세한 내용은 gradle 공식 문서를 참조하십시오.
프록시 뒤에서 Gradle을 사용하는 방법에는 다음 두 가지가 있습니다.
명령줄에 인수 추가
(기욤 베르쉐의 포스트에서)
gradle 명령어에 다음 인수를 추가합니다.
-Dhttp.proxyHost=your_proxy_http_host -Dhttp.proxyPort=your_proxy_http_port
또는 https를 사용하는 경우에는 다음 인수를 사용합니다.
-Dhttps.proxyHost=your_proxy_https_host -Dhttps.proxyPort=your_proxy_https_port
그라들 구성 파일에 줄 추가
gradle.properties
.
systemProp.http.proxyHost=your_proxy_http_host
systemProp.http.proxyPort=your_proxy_http_port
systemProp.https.proxyHost=your_proxy_https_host
systemProp.https.proxyPort=your_proxy_https_port
)gradle.properties
파일 위치. 공식 문서 https://docs.gradle.org/current/userguide/build_environment.html를 참조하십시오.
편집 : @Joost : 처음에 간과했던 작지만 중요한 세부사항: 실제 호스트 이름에는 포함되지 않습니다. http://
URL...
SourceSimian의 응답을 기반으로 Windows 도메인 사용자 계정에서 작동합니다.사용자 이름에는 도메인이 포함되어 있지 않습니다.
task setHttpProxyFromEnv {
def map = ['HTTP_PROXY': 'http', 'HTTPS_PROXY': 'https']
for (e in System.getenv()) {
def key = e.key.toUpperCase()
if (key in map) {
def base = map[key]
def url = e.value.toURL()
println " - systemProp.${base}.proxy=${url.host}:${url.port}"
System.setProperty("${base}.proxyHost", url.host.toString())
System.setProperty("${base}.proxyPort", url.port.toString())
System.setProperty("${base}.proxyUser", "Username")
System.setProperty("${base}.proxyPassword", "Password")
}
}
}
build.dependsOn setHttpProxyFromEnv
Android 스튜디오의 외관과 행동 => 시스템 설정 => HTTP Proxy에서 프록시를 설정하려고 하는 경우.그런데 프록시가 잘 안 돼서 No proxy를 클릭합니다.
NO PROXY를 켜도 gradle.properties(글로벌)에서 프록시 설정은 삭제되지 않습니다.수동으로 제거해야 합니다.
따라서 systemProp.http.nonProxyHosts=*.local, localhost와 같이 systemProp로 시작하는 모든 속성을 제거합니다.
@sourcesimian 및 @kunal-b의 응답에 대한 업데이트.시스템 속성으로 설정되어 있는 경우, 유저명과 패스워드가 동적으로 설정됩니다.
다음에, 유저명과 패스워드가 지정되어 있는 경우는 유저명과 패스워드를 설정하거나, 유저명과 패스워드가 설정되어 있지 않은 경우는, 호스트와 포토를 추가합니다.
task setHttpProxyFromEnv {
def map = ['HTTP_PROXY': 'http', 'HTTPS_PROXY': 'https']
for (e in System.getenv()) {
def key = e.key.toUpperCase()
if (key in map) {
def base = map[key]
//Get proxyHost,port, username, and password from http system properties
// in the format http://username:password@proxyhost:proxyport
def (val1,val2) = e.value.tokenize( '@' )
def (val3,val4) = val1.tokenize( '//' )
def(userName, password) = val4.tokenize(':')
def url = e.value.toURL()
//println " - systemProp.${base}.proxy=${url.host}:${url.port}"
System.setProperty("${base}.proxyHost", url.host.toString())
System.setProperty("${base}.proxyPort", url.port.toString())
System.setProperty("${base}.proxyUser", userName.toString())
System.setProperty("${base}.proxyPassword", password.toString())
}
}
}
의 편집~/.gradle/gradle.properties
다음 파일을 추가합니다.
org.gradle.jvmargs=-DsocksProxyHost\=127.0.0.1 -DsocksProxyPort\=1080 -DhttpProxyHost\=127.0.0.1 -DhttpProxyPort\=1081 -DhttpsProxyHost\=127.0.0.1 -DhttpsProxyPort\=1081
DsocksProxyHost
socks5 프록시 호스트입니다.DhttpProxyHost
http 프록시 호스트입니다.DhttpsProxyHost
https 프록시 호스트입니다.
그것은 나에게 효과가 있었다.
HTTP 오류 407 이 문제가 선택한 패키지에서만 발생한 경우 프록시 설정 및 인터넷 연결에 문제가 없습니다.NAT을 통해 PC가 인터넷에 노출되어도 이 문제가 발생할 수 있습니다.일반적으로 브라우저에서 원하는 패키지를 동시에 다운로드할 수 있습니다.유일한 해결책은 프로젝트가 아닌 프로필에서 .gradle 폴더를 삭제하는 것입니다.동기화가 끝나면 시간이 오래 걸리지만 모든 것을 복구합니다.
플래터를 사용하는 경우 다음 행을 에 추가합니다.android/gradle.properties
systemProp.http.nonProxyHosts=*.local, localhost
kotlin .kts 설정 파일에서 속성은 다음과 같이 정의해야 합니다.
extra["systemProp.http.proxyHost"]="127.0.0.1"
extra["systemProp.http.proxyPort"]="12345"
이전 버전의 SDK를 설치하고 셋업한 후에도 같은 문제가 발생하였습니다.JAVA_HOME
에.zshrc
위의 솔루션 중 어느 것도 도움이 되지 않지만, 최종적으로RESTARTED COMPUTER
(Mac) 그러면 오류가 사라집니다.
당신이 뒤에 일식을 하고 있다면, 하세요.Window Menu --> Preferences --> General --> Network Connections
를 '으로 활성 공급자를 '수동'으로 선택합니다.
[ Proxy entries ]섹션에서 [HTTPS]를 클릭하여 [Edit]를 클릭하여 프록시 호스트와 포트를 추가합니다.사용자 이름과 패스워드가 필요한 경우는, 그것도 입력합니다.나한텐 효과가 있었어!
언급URL : https://stackoverflow.com/questions/5991194/gradle-proxy-configuration
'programing' 카테고리의 다른 글
Bootstrap-Vue: 요소를 나머지 공간에 채우십시오. (0) | 2022.07.01 |
---|---|
vuex에서 모듈의 네임스페이스란 정확히 무엇입니까? (0) | 2022.07.01 |
컴파일을 완료하지 못했습니다.이미 존재하는 프로그램 유형: com.google.android.gms.internal.measurement.zabn (0) | 2022.07.01 |
매크로가 간접적으로 확장될 때 C의 프리프로세서의 동작을 이해한다. (0) | 2022.07.01 |
VueJ와 jQuery를 멋지게 플레이하다 (0) | 2022.07.01 |