중간 규모의 복잡한 소프트웨어 프로젝트의 경우 복잡한 종속성 체인으로 신속하게 끝날 수 있습니다. 각 프로젝트가 발전함에 따라 고정 의존성이 지속적인 통합을 방지Maven : SNAPSHOT을 사용하여 버전 범위에 대해 개발하지만 고정 버전에 대해 출시합니다.
A --> B --> C
`--------^
A와 B 모두 C.에 따라 다릅니다
는 다음 종속성 트리를 생각해 보자. (예를 들어, C가 A, B의 의존성에 의해 필요로되는 수정으로 업데이트되는 경우) semantic 버전 관리를 사용하면 모듈을 지속적으로 조정할 필요없이 버전 범위에 맞게 모듈을 유지할 수 있습니다.
[실제로이 그래프는 더 복잡합니다. 모듈성을 뛰어 넘을 수 있기 때문에 모든 것을 다중 모듈 프로젝트에 결합 할 필요는 없습니다. 모듈러 소프트웨어과 연속 통합을 작성하려고합니다.
그러나 배포 된 릴리스는 변경 불가능해야합니다. 그들이 의존하는 버전은 돌로 고정되어야하므로 오늘 (+ 의존성) 선택된 버전은 내년에 사용 된 것과 동일합니다.
목표 :
개발자는 스냅 버전에서 작동- (따기 스냅 종속 로컬 또는 허드슨에서)
- 출시 종속성 버전이 최신 (호환)에 대해 발표하게된다 (스냅 샷 제외)
- 릴리스는 영원히 변경되지 않습니다.
- 메이븐에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까 : 항상 B와 C
질문에서 A = 1.0.0에 따라 나타납니다? 이 유스 케이스를 설명하는 링크/문서가 있습니까?
- maven release 플러그인을 사용하여 버전 범위를 확인하고 릴리스로 구울 수 있습니까? 을 감안할 때
: 기본 받는다는 (3.0.3)으로
- 버전 범위에서 스냅 종속성을 선택합니다.
- 스냅 샷과 출시, 별도의 저장소
받는다는와 지속적인 통합을하는 더 나은 방법이 있나요에 배포 할 수 있습니까?
릴리스 중에 버전 범위가 잠겨 있습니까? A 1.0이 B [1.0,2.0]에 의존하는 경우.그 의존성 범위는 릴리스 A에서 지속됩니까? –