2011-11-22 3 views
3

우리는 소스 제어에 SVN, 종속성 관리에 Apache Ivy를 사용하는 Java 캠프이지만이 질문은 모든 플랫폼/언어, SCM 및 아티팩트 저장소 도구에 광범위하게 적용됩니다.버전 관리 및 아티팩트 저장소 동기화

내 테크 리드와 나는 아이비와 같은 의존성 관리자를 사용하여 우리 회사의 모든 JAR를 관리하는 첫 걸음을 섰습니다. 우리는 "Ivy Repo"이라고 부르는 것을 설정했습니다. 여기에는 사내 (개발 된 JAR) JAR과 일반적으로 재사용되는 종속성 (Apache JAR, Spring 등)을 모두 수용하는 곳이 있습니다.

우리는 코드 변경 사항이 코드 검토되고 SVN에 위탁되어 빌드되기 전에 개발자가 사내 Commons JAR (Commons.jar)을 변경하고 <ivy:publish>을 실행해야하는 문제에 부딪치기 시작했습니다 CI 서버. 이는 개발자가 하나의 프로젝트에서 버그 수정이나 새로운 기능을 사용하지만 작업을 완료하기 위해 Commons.jar와 같은 종속성을 수정해야 할 때 발생합니다.

그래서 우리는 아이비와 SVN이 서로 동기화되지 않은 상황에 처해 있습니다.

분명히 코드를 검토하고 커밋하고 팀과 코드를 테스트하지 않고 아무도 게시 할 수없는 규칙을 만들 수 있습니다. 또는 개발자가 모두 게시하지 못하게 할 수 있습니다.

두 경로 중 하나를 건너 뛰기 전에 (우리는 후자쪽으로 기울고 있습니다), 다른 팀이 동일한 문제를 경험했는지 그리고이를 방지하기 위해 어떤 해결책이 구현되었는지 궁금합니다.

아마도 Artifactory 또는 SonaType과 같은 도구를 살펴볼 가치가 있지만 우리 중 누구도 이러한 경험이 없으며 이러한 종류의 비즈니스 규칙을 지원하는 것처럼 보이지 않습니다. 한마디로

: 그 출판사는 항상 우리의 표준 code >>review >>commit >>CI >>deploy주기에서 마지막 단계입니다, 그래서 우리는 조기 JAR 게시를 방지 할 수있는 방법을 찾고 있습니다.

미리 감사드립니다.

답변

3

Artifactory는 누가 무엇을 어디서 배포 할 수 있는지 제어하는 ​​데 유용한 fine-grained permission management을 제공합니다. 예를 들어 이름 \ 경로 (즉, Commons.jar)를 기반으로 jar 파일의 발행을 거부하는 규칙을 작성하여이를 승인 할 위치에있는 사용자를 제외한 모든 사용자에게 적용 할 수 있습니다.

더 많은 유연성이 필요하면 Artifactory의 프로 버전에도 User Plugins feature이 있습니다. 기본적으로 Artifactory 용 그루비 플러그인을 작성하고 다양한 작업에 대한 풍부한 컨텍스트와 후크를 제공합니다.
또한 Artifactory의 properties metadata을 사용하면 모든 조건에 사용할 수있는 사용자 정의 태그로 모든 이슈 및 폴더에 주석을 추가 할 수 있습니다.

둘을 결합하여 상상력을 과장되게하십시오.

+0

감사합니다. noamt - Artifactory 같은 소리가 들립니다. – IAmYourFaja