2017-10-16 13 views
1

인터넷 연결이없는 컴퓨터에서 실행해야하는 gradle 프로젝트에서 작업 중입니다.Gradle에서 jar를 다운로드하지 않습니다.

이를 위해 gradle 캐시를 가져 와서 다른 디렉토리에 복사하여 로컬 저장소로 사용하는 작업을 만들었습니다.

저는 온라인 모드에서 프로젝트를 만들었고 작동했습니다. 캐시를 로컬 리포지토리에 복사하는 작업을 수행했는데 제대로 작동했습니다. 내가 (여러 jar 파일에 대한)이 같은 오류를 얻고있다 gradle build --offline을 실행하려고 할 때 그러나, 내 로컬 저장소와 Gradle을 캐시를 모두 확인

Could not download commons-math3.jar (org.apache.commons:commons-math3:3.4.1): No cached version available for offline mode 

을, 나는 (의 관련 jar 파일을 찾을 수 없습니다 이 경우 commons-math3-3.4.1.jar).

gradle build --refresh-dependencies을 사용해 보았습니다. 캐시를 삭제 한 다음 gradle build - 아무것도 사용하지 않으면 jar 파일 만 다운로드되며 POM 파일은 다운로드되지 않습니다. jar 파일을 수동으로 다운로드하고 로컬 저장소의 올바른 디렉토리에 넣으려고해도 작동하지 않습니다.

도움을 주시면 감사하겠습니다.

답변

0

저는 Gradle 캐시가 이와 같은 다른 시스템으로 전송 될 수 있다고 생각하지 않습니다. 구성에서 오프라인 사용을위한 로컬 디렉토리에 종속성을 복사 할 수있는 플러그인을 만들려고합니다. here하지만 this issue을 공격했습니다. 부모 POM 및 BOM에 Gradle API가 액세스 할 수 없습니다. 내가 플러그인 here과 POM 지원 부모의 부족의 사용을 보여주는 실패한 테스트가있어.

문제에 대한 제안 중 하나는 IvyPot plugin을 시도하는 것입니다. 나는 나 자신을 시도하지 않았지만 시도하고있는 것에 대해 효과가있을 수있다.

+0

캐시를 복사하는 플러그인을 만들어 내가 한 일의 종류는 (프로젝트 내 디렉토리에 있다고 오프라인 오프라인 저장소로 사용). 덜 유용했지만 작동합니다 (필자는 작은 테스트 프로젝트를 오프라인으로 성공적으로 구축하고 실행했습니다). 내 문제는 내가 언급 한 jar 파일 (및 기타 3) gradle 캐시에, 그래서 그들을 내 오프라인 저장소에 복사 할 수 없습니다, 작동하지 않는다는 것입니다. –

+0

그건 꽤 해킹 소리, Gradle 캐시 디렉토리는 당신이 액세스해서는 안된 개인 구현입니다. 항아리가 없으면 ['Configuration.resolve()'] (https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html#) 전에 캐시를 복사 한 것 같습니다. resolve())가 하나 이상의 구성에서 호출되었습니다. –

+0

저는 온라인으로 프로젝트를 작성하고, 항아리와 폼을 복사하고, 오프라인으로 빌드하려고 시도했으며 오류가 발생했습니다. –

0

당신은 프록시 파일을 아래와 같이 파일 "gradle.properties"에 프록시 세부 정보를 추가, 활성화 될 수 있습니다

systemProp.http.proxyHost=your.proxy.com 
systemProp.http.proxyPort=XXXX 
systemProp.http.proxyUser=user 
systemProp.http.proxyPassword=password