2013-01-07 3 views
0

여기 내 프로젝트 구조이며,는 메이븐 : 트랜 - 순환 종속성 - 릴리스 프로세스

Parent 
^^^ 
| | | 

A B C 

프로젝트 A, B는 C는 부모에 의존한다. 부모는 A, B 및 C의 버전을 결정하는 종속성 관리 섹션을 가지고 있습니다.

릴리스 프로세스 중에 나는 먼저 A, B, C의 릴리스 버전이 될 상위를 릴리스합니다. 그런 다음 A, B 및 C의 부모를 부모의 최신 버전으로 변경하십시오. 하기 때문에 상기 의존성

A -> C, B->A and C->A 

, I는 제을 떼면 I는 A, B 및 C 방출의 순서를 결정할 수 있으며, 이는 C의 릴리스 버전 (사용할 수없는 불평 부모 때문에 출시 전 C 버전을 미리 선언했다.) 그것은 I 학부모 힘내 개별 REPOS로서 A, B 및 C를 가지고

A.

에 의존하기 때문에, 우선 C를 해제 할 수 없다. 방법이 있을까요, 해결할 수 있습니다.

+0

A와 C가 서로 의존하는 이유가 있어야합니다. 그 이유는 무엇입니까? 다음과 같이 A와 C가 다른 프로젝트 D와 공유하는 공통 부분을 제거 할 수 있습니다 : A -> D, B -> A, C -> A -> D 그런 다음 D를 먼저 풀고 A를 누른 다음 B를 놓습니다. 및 C. –

답변

1

이 문제를 해결할 수있는 유일한 방법은 순환 종속성이 존재하지 않는 것을 적용 A, B 및 C 사이 메이븐 순환 종속성을 제거하는 것이다. 그 원을 제거하려면 프로젝트 A, B, C의 한 쌍의 공통 부분을 새로운 모듈 D로 제외시켜야합니다. 따라서 A와 B 사이의주기를 열려면 D에만 의존해야합니다

이렇게하면 동일한 작업의 모든 것을 해제 할 수 있으므로 릴리스 프로세스가 훨씬 간단 해집니다.