나는 많은 하위 프로젝트를 포함하고있는 다중 프로젝트 빌드를 가지고있다.gradle multi-project : ordering/dependencies
include ':common'
project(':common').projectDir = new File(rootDir, 'android-common/common')
include ':setup'
project(':setup').projectDir = new File(rootDir, 'android-setup/setup')
...
마스터 프로젝트 수준에서 주문 (또는 종속성)을 추가하고 싶습니다. 위의 예에서는 setup
전에 항상 common
을 작성하고 싶습니다. 그것 같다 나는 setup:compile
(또는 빌드 작업이 명명 된)에 대한 참조를 얻고 추가 종속성을 추가하는 것과 같은 것을 원한다.
tasks[':setup'].dependsOn += tasks[':common:install']
분명히 작동하지 않습니다. 이것이 가능한가?
EDIT : 조금 더 자세히. :common
의 결과는 maven 이슈를 설치 한 다음 :setup
에 의해 사용됩니다. 그래서 그들 사이의 의존성은 부드럽습니다. 그러나 일반적인 dev-cycle에서 우리는 여전히 :common
을 먼저 만들고 싶습니다. 당신은 프로젝트 종속성
project(':setup') {
dependencies {
compile project(':common')
}
}
편집을 사용하려면 같은
문제는 설치가 이제 메이븐 레포 의존성을 통해 일반적인 것에 달려 있으며, 나는 그것을 바꿀 수 없다는 것입니다. 모든 변경 사항은 마스터 프로젝트 레벨에서 수행되어야합니다. 설치 프로그램은 일반적인 것보다 다른 git repo에 있습니다. 구조는 maven repos를 통해 "소프트"종속성을 가진 많은 repos를 가지고 있지만, 우리는 하나의 gradle 프로젝트로 이들을 개발하고 싶습니다. –
왜 Maven 종속성을 사용해야하는지 설명 할 수 있습니까? 프로젝트 종속성을 사용하면 게시 할 때 올바른 종속성 메타 데이터가 생성되어야합니다. –
각각의 repos는 독립적으로 빌드해야하기 때문에. –