2012-11-03 2 views
12

내부 서버에서 실행되는 Sonatype Nexus가 있다고 가정 해 봅시다. repo1.maven.org 및 기타 리포지토리에 프록시를 사용하고 싶습니다. Maven에서는 settings.xml<mirror> 구성을 추가하기 만하면됩니다. Gradle에서 어떻게이 작업을 수행 할 수 있습니까?Sonatype Nexus를 Gradle과 함께 사용하여 repsitories를 프록시하는 방법은 무엇입니까?

업데이트 : 내 Nexus 인스턴스의 URL을 각각의 모든 프로젝트에 하드 코딩하지 않고도이 작업을 수행하고 싶습니다. 그래서 Maven <mirror> 설정의 정확한 복제본을 찾고 있습니다.

지금 같은 것을하는 것입니다 위해 가지고 올 수있는 최선 :

repositories { 
    maven { 
     url "$nexusUrl/content/groups/public" 
    } 
} 

을 그리고 각 개발자의 컴퓨터에 ~/.gradle/gradle.properties이 있습니다

nexusUrl = https://nexus.company.com 

그러나,이 해킹 보인다 , 그리고 각 프로젝트에 5 줄을 추가해야합니다. 이 일을 더 우아한 방법이 있습니까?

답변

12

초기화 스크립트 갈 수있는 가장 좋은 방법이 될 수 있습니다. User Guide에서이 장을 살펴보십시오.

그들은 모든 프로젝트에 논리를 삽입 할 수있는 방법을 제공합니다.

3

으로는 the documentationabout init scripts 설명 :

는 폴더와 .gradle 예컨대 : ~/.gradle/init.d/mirror.gradle로 끝나는 파일을 만듭니다. 내용으로 :

initscript { 
    repositories { 
    maven { 
     url "http://repo.mycompany.com/maven2" 
    } 
    } 
} 
+0

이 설명서 URL의 프래그먼트 ID는 더 이상 존재하지 않습니다. 설명서의 어느 부분을 참조하고 있습니까? – Kkkev

+1

Ctrl-F를 누르고 "http://repo.mycompany.com/maven2"를 입력하면 찾을 수 있습니다 –

+0

이 솔루션은 요점을 놓치고 있습니다! Maven에서는 프로젝트 pom에 저장소를 지정할 수 있습니다. 자신의 PC에서 자신의 저장소로 덮어 쓸 수 있지만, 이것은 개발자가 선택한 것이지, 이슈 저작자가 아닙니다. 이슈 작성자는 사용할 로컬 레포를 어떻게 결정할 수 있습니까? –

관련 문제