2014-04-01 1 views
3

우리의 프로젝트에서 gradle을 평가 중입니다. 우리는 작은 util 라이브러리를 포함하는 여러 개의 작은 프로젝트를 가지고 있습니다. 대부분의 프로젝트는 별도의 저장소에 있으며 공유 빌드 스크립트를 사용할 수 없습니다. 여러 프로젝트에서 작업 할 때 동일한 기능 분기가 사용됩니다. 나는 이미 분류기로 생성 된 maven artifact에 branchname을 넣기 위해 gradle을 얻었습니다. 우리의 지속적인 통합을 위해서 그러한 라이브러리가 존재하는 경우 자체 브랜치 이름을 사용하는 라이브러리에 대한 의존성을 해결하는 것이 정말 도움이 될 것입니다. 그렇지 않으면 정상 선언 된 버전으로 대체해야합니다.Grarad와 분류 자로 Branchname이있는 버전 선택

resolutionStrategy.eachDependency를 통해 버전을 변경할 수 있었지만이 분기에 대한 버전이없는 경우 폴백을 구현할 수있는 방법을 찾지 못했습니다.

어떨까요?

안부, 당신은이를 달성하기 위해 코드를 작성해야합니다

+0

branchname을 분류 자로 이슈 이름에 어떻게 추가했는지 기억하십니까? –

+1

@KevinM Sry, 너무 늦게 답변 해 주셨습니다. 우리의 오래된 코드를 찾지 못했습니다. 그리고 그것은 이전 버전의 gradle과 같았습니다. 그래도 여전히 작동하는지 확실하지 않습니다. 나는 이것을 처리 할 수있는 https://github.com/nemerosa/versioning과 같은 버전 플러그인을 찾을 것이다. 이 것을 테스트하지는 않았지만 꽤 좋아 보인다. – Arne

+0

감사합니다. 내가이 주석을 쓴 후에 Axion이라는 플러그인을 더 깊이 파고 들었다. 버전 파일에 분기 이름을 추가 할 수 있습니다. 어쨌든 고마워! –

답변

4

을 아르네. 예를 들어 구성을 복사하고 복사 된 구성에 대한 분류자를 resolutionStrategy.eachDependency으로 설정하고 configuration.resolvedConfiguration.lenientConfiguration을 통해 복사 된 구성을 확인하고 어떤 종속성을 확인할 수 있는지 확인한 다음 그에 맞게 원래 구성의 분류자를 선택합니다 (다시 resolutionStrategy.eachDependency 통해). 이 모든 작업을 수행 할 수있는 가장 좋은 장소는 configuration.incoming.beforeResolve입니다.

+0

일하는 것 같습니다. 고마워요 !! 내 빌드로 또 다른 문제가 있지만이 다른 주제로 생각하므로 다른 질문으로 게시 된 생각 : http://stackoverflow.com/questions/22784643/incremental-compile-in-gradle-not-working-when- using-file-from-classpath이 문제를 해결하는 방법에 대한 힌트를 줄 수 있습니까? – Arne