2014-09-02 11 views
0

내 프로젝트는 두 단계로 확장됩니다. 첫 번째 단계가 거의 완료되었습니다. 우리가 이미 몇 가지 기능을 가지고 있지만 논리적 분리를위한 메뉴 항목으로 볼 수 있습니다. 개발 된 항목은 2 단계에서 제공됩니다.자바 프로젝트의 두 가지 컴파일 된 버전

코드베이스의 두 가지 버전 (phase1Branch 및 phase2Branch 브랜치 두 개 생성)을 유지하는 것이 좋습니다. 왜냐하면 우리는 두 개의 컴파일이 필요하기 때문입니다. (따라서 자바 배포 된 아티팩트는 jar 파일입니다. jenkins를 사용하여 배포 용 jar 파일을 생성하는 프로젝트를 빌드합니다.) phase1 용 코드베이스 버전과 phase2 용 코드베이스 버전. 예를 들어 클라이언트에게 데모를 보여줄 때와 같이 필요에 따라 phase1에서 phase2로 쉽게 전환 할 수 있습니다.

그러나 여전히 나는 두 코드베이스를 유지하지 않고도이 작업을 수행 할 수 있다고 생각합니다.

최소의 번거 로움으로 목표를 달성하는 모범 사례는 무엇입니까?

+0

버전 제어가 없으면 로컬로 2 개의 복사본을 만들 수 있습니다. – sanbhat

+0

@sanbhat 우리는 버전 관리 기능을 가지고 있지만, 내 문제는 로컬에서 2 개의 사본을 만드는 방법이 아닙니다. 내가 원하는 것은 코드베이스의 복사본을 만드는 것을 피하는 것이다. –

+0

두 개의 코드베이스를 갖고 싶다면 너무 많은 간섭, 충돌, 전달 속도 저하 등의 좋은 이유가 있어야합니다. 예를 들어 단계 1 페이지와 별도로 새 페이지를 만들거나 일부 스위치로 간소화 할 수 있다면 두 코드베이스가 필요하지 않을 수 있습니다. _entire_ 코드베이스를 분기하는 것은 비용이 많이 든다. 하나는 여전히 병합되어야합니다 (= 비생산적인, 집중되지 않음). 따라서 일부 기능을 사용하여 이전 기능과 병행하여 새로운 기능을 가장 잘 소개 할 수 있습니다. 그렇지 않으면 분기는 물론 유효한 측정입니다. –

답변

0

트렁크 지점 자체에서 이전 v1 코드의 코드 줄에 tag 즉 타임 스탬프를 만들 수 있습니다. 태그가 생성되면 v2의 트렁크에서 변경 사항을 계속 수행 할 수 있습니다. 태그를 사용하면 언제든지 필요할 때마다 변경 사항을 검색 할 수 있습니다.