Java 프로젝트를 Ant에서 Gradle로 마이그레이션 중입니다. 최선의 해결책은 Gradle의 다중 프로젝트 지원을 사용하는 것이지만 순환 의존성을 없애는 방법을 찾을 수는 없다고 생각합니다. 까다로운Gradle에서 순환 종속성을 해결하는 방법
- project/
- common/
- product-a/
- product-b/
관계 product-a
, common
사이 및 product-b
:
원래 프로젝트
이 레이아웃을 갖도록 설정 하였다.common
은 구성 파일에 따라
product-a
또는
product-b
에 따라 다릅니다. 마찬가지로
product-a
및
product-b
은 구성 속성에 관계없이
common
에 따라 다릅니다.
product-a
과
product-b
은 동시에 빌드되지 않습니다.
나는 빠른 솔루션이
project/build.gradle
이 같은 것을 사용하는 것입니다 생각 :
project(':product-a') {
dependencies {
compile project(':common')
}
}
project(':product-b') {
dependencies {
compile project(':common')
}
}
다음, 난 그냥 product-a
에 대한 작업이 가까이 얻을 수있는 방법을 것에 대해 생각했다. 그 덕분에 다음과 같이 나타났습니다.
project(':common') {
dependencies {
compile project(':product-a')
}
}
순환 의존성이있는 경우 예외가 발생합니다.
내가 common
및 product-a
/product-b
또는 다형성을 사용하여 예상되는 클래스의 인터페이스를 설정하여 product-a
및 product-b
리팩토링 고려했지만, 나는 그 중 하나가 앞으로 이동하기 전에, 이것을 달성하기 위해 더 나은 방법이 요람? 나는 아직이 기술적 빚을 없앨 준비가되어 있지 않다.