"모듈 식 Java 응용 프로그램"을 개발 중이며, 약 60 개의 독립 모듈이 있습니다. 모두 자체적으로 "빌드 가능"합니다.GIT 저장소의 모듈 식 Java 응용 프로그램
GIT에서이 유형의 응용 프로그램을 구조화하는 최선의 방법이 무엇인지 이해하려고합니다.
더 나은 자신을 설명 할 것이다 : SVN과
내가 일한지 몇 년과 나 같은 SVN과 같은 중앙 집중식 버전 관리 도구에서 다음과 같이 프로젝트를 구성하는 것이 정말 쉬운 것입니다 I 동안 GIT 모범 사례와 찬반 양론에 대해 잘 모르겠습니다. SVN으로
:
mod_A
|___trunk
|___branches
| |___branch_A
|
|___tags
mod_B
|___trunk
|___branches
| |___branch_A
| |___branch_B
|
|___tags
또는
을 :이내가 예를 들어, 내가 유사한 결과로, 두 개의 서로 다른 접근 방식을 고려할 것
같은 저장소에서 모든 프로젝트를 가져올 것
trunk
|___mod_a
|___mod_b
|___mod_c
branches
|___branch_A
| |___mod_a
|___branch_B
|___mod_a
|___mod_b
두 가지 방법을 사용하면 특정 기능을 위해 분기 된 모듈과 같은 정보를 얻는 것이 정말 쉬울 것이고 장래의 모듈뿐만 아니라 미래의 지점에서도 응용 프로그램을 볼 수 있습니다.
또한 두 구조를 사용하면 언제든지 모듈을 여러 개 분기 할 수 있으므로 모듈을 쉽게 분기 할 수 있습니다. GIT와
: 몇 가지 장점을 제공하는 경우에도 그 순간 나는 내 생각이 구조에서, 모든 모듈에 대해 하나의 독립적 인 환매 특약으로 구성되어 함께 일하고 있어요 모듈 응용 프로그램에서
는, 또한이있는 진짜 큰 문제.
실제로 응용 프로그램에 대한 전반적인 개요가 명확하지 않아 모든 단일 저장소에 연결하고 분기를 확인하여 특정 분기에 어떤 모듈이 관련되어 있는지 파악할 수 있으므로, 내 응용 프로그램의 분기 된 버전을 관리 할 수 있습니다. 예를 들어 전체 응용 프로그램이 아닌 특정 BUG_FIXING 또는 FEATURE 분기에서 분기되는 모듈이 7 개만 있으면 GIT를 통해이 정보를 얻을 수있는 방법이 없습니다. 정보를 사용자 정의 방식으로 표시합니다.
그럼 응용 프로그램이 동일한 저장소에 설정되었다고해도 "Git은 개별 저장소가 아닌 전체 저장소에서 작동합니다"라는 모듈의 하위 집합 만 분기 할 것을 결정할 수 없었을 것입니다.
GIT 하위 모듈을 솔루션으로 사용할 수있는 모듈 식 응용 프로그램을 사용하는 최선의 방법은 무엇인지 명확히 설명해주십시오. 내가 고려하지 않은 다른 접근법이 있습니까, 아니면 잘못된 가정에서 이동하고 있습니까?
고맙습니다.
마리나라는 아주 좋은 설명입니다! 그러나 그것은 내 마음에 의심의 여지가 :이 구조로 전체 프로젝트에 대한 하나의 진입 점, 하나의 전체 프로젝트 aggregator, 마스터, 어떤 코드 라인을 유지하기를 원한다면 분기 모듈과 표준 모듈을 혼합하여 만들었습니다. 예를 들어, feature_a를 유지하고 싶다면 마스터에서 mod_a_feat_branch_a, mod_b, mod_c_feature_branch_a 등을 병합 할 것입니다. 그러나 하나의 애플리케이션 애그리 게이터가 아닌 더 많은 애플리케이션 애그리 게이터를 유지하려면 어떻게해야합니까? – ivoruJavaBoy
필자는 내 대답 대답의 끝 부분에 프로젝트 레벨 파일 (응용 프로그램 수집기)을 관리 할 부분을 추가했습니다. 그리고 예, 전체 프로젝트는 일반적으로'마스터 '지점에서 관리 할뿐만 아니라'개발','기능'및'핫픽스'지점 등에서도 관리합니다. –
감사 마리나가 정말 일관되고 합리적으로 보입니다! 마지막으로 한 가지 피드백을 보내고 싶습니다. 전체 애플리케이션이 공간 소비면에서 엄청나다면, 언제든지 전체 프로젝트를 포함하는 전체 레포를 다운로드해야하는 것을 관리 할 수 있습니까? 개발자가 단일 모듈에서 작업해야한다면 모듈 59 개를 로컬에서 다운로드해야합니다. GIT가 이와 같이 작동한다는 것을 알고, 이것이 가장 큰 이점 중 하나입니다. 서버 크래시는 로컬에 필요한 모든 것을 가지고 있기 때문에 발생합니다.)하지만 내게는 극단적 인 것 같습니다. – ivoruJavaBoy