답변:
하위 모듈에 대한 Git의 문서를 읽는 것이 좋습니다 . 모든 소스가 Git을 사용한다고 가정하면이 문제를 해결합니다. 그렇지 않은 경우 통합을 위해 항상 git repo를 설정할 수 있습니다. 노력은 사소한 것이며 그 결과는 중요합니다.
저장소에 종속성이 포함되어야합니까?
종속성 을 포함하는 것이 사용 약관을 위반하지 않는 한 항상 저장소에 종속성을 포함해야한다고 생각 합니다. 빌드하기 전에 올바른 종속성의 올바른 버전을 수동으로 찾는 것보다 성가신 것은 거의 없습니다. 물론, 올바른 종속성을 찾아서 다운로드 할 수있는 자동화 된 도구를 사용하면 쉽게 수행 할 수 있지만 현재 웹에 연결되어 있지 않거나 서버가 다운되었거나 종속성 프로젝트 인 경우 어떻게해야합니까? 완전히 중단되어 오프라인 상태가 되었습니까? 가능한 경우 항상 종속성을 포함하십시오.
종속성을 나머지 프로젝트와 동일한 빌드 스크립트 또는 별도의 빌드 스크립트에서 빌드해야합니까?
소스에서 컴파일해야 할 적절한 이유가 없다면 미리 컴파일 된 버전을 사용하십시오.
그리고 왜 빌드 스크립트에 옵션을 제공하지 않습니까? 종속성도 컴파일해야하는지 여부를 선택하는 간단한 스위치입니다. 사용자가 종속성을 컴파일하기로 선택한 경우 제품의 빌드 스크립트에서 자체 빌드 스크립트를 호출하십시오. 따라서 사용자는 종속성의 빌드 스크립트를 수동으로 호출하거나 모든 것을 전체 빌드하도록 선택할 수 있습니다. 그러나 소스에서 컴파일 할 이유가 없다면 바이너리를 바이너리로 제공합니다. 오픈 소스 세계에서는 일부 라이센스에 따라 소스를 제품과 함께 배포해야하지만 사전 컴파일 할 수는 없습니다.
한마디로 : 가능 하면 완전한 독립형, 작동 패키지를 제공하십시오. 사용자에게 가장 편리합니다.
이것은 귀하의 유스 케이스에 적용되거나 적용되지 않을 수 있지만, 회사에서하는 일은 각 지사에 "References"폴더를 포함시키는 것입니다. 여기에 타사 DLL을 배치합니다. 이로 인해 소스 제어에서 변경되지 않는 바이너리가 많이 중복되지만 스토리지는 저렴하며 각 지점 및 태그는 정확히 예상되는 종속성 (및 버전)을 갖습니다.
종속성을 직접 컴파일하고 컴파일 된 바이너리를 해당 폴더로 옮깁니다. 우리 자신의 사내 공유 라이브러리도 이와 같이 취급됩니다. 그렇게하면 사전 컴파일 된 독점 라이브러리, 오픈 소스 라이브러리 및 사내 라이브러리에 동일한 기술이 적용됩니다.
실제로 다시 읽었으므로 지금 귀하의 질문에 대답하는 한 똑같은 작업을 수행하고 프로젝트에서 사전 컴파일 된 1.3.5 버전의 Lua를 사용한다고 언급하십시오.
우리는 이클립스 매장이기 때문에 Buckminster 를 사용하여 빌드 / 조립 / 배포 프로세스를 관리 하기 시작했습니다 .
우리의 첫 번째 단계는 기존의 모든 종속 라이브러리를 꺼내고 buckminster가 올바른 라이브러리를 구체화하는 것입니다. 따라서 훨씬 빠르고 작은 배포가 가능합니다.
다음 단계는 모 놀리 식 svn
저장소를 일련의 모듈 식 저장소 로 옮기는 것 git
입니다.
buckminster가 git
하위 모듈 (또는 그 문제에 대한 수은 하위 할당)과 얼마나 잘 통합되는지 는 모르지만 buckminster는 주어진 구성 요소에 사용되는 VCS와 관련하여 무관심하다는 것이 좋습니다.