문제

이것은 이전 질문의 연속 질문입니다 나는 물어 보았다

이제 프로젝트 트리의 루트에 /외부 디렉토리가 있습니다. 이 안에는 다른 프로젝트에 대한 참조가 있습니다. 메인 프로젝트 Nant 스크립트에서 모든 외부의 빌드를 스크립트 할 수 있습니다. 이 빌드의 결과는 다음과 같습니다.

/externals/external-project1/build/buildArtifacts/{dlls | html | js}

/externals/external-project2/build/buildArtifacts/{dlls | html | js}

이것은 모두 훌륭하고 훌륭하지만 이제는 내 주요 프로젝트가 어떻게 이러한 빌드 아티팩트를 참조 해야하는지 궁금합니다. 예를 들어, 외부 프로젝트가 내 코드베이스 중 일부가 의존하는 DLL을 구축한다고 가정 해 봅시다. 빌드 아티팩트 디렉토리에서 DLL을 간단히 참조해야합니까? 아니면이를/ThirdParty/Libs/폴더에 복사하는 다른 넌트 작업을 구현해야합니까?

이는 내 빌드가 이제이 외부 프로젝트 (내부 또는 타사일 수 있음)를 구축하는 능력에 의존한다는 것을 의미합니다. 최신 빌드 아티팩트 세트를 확인하여 의존적 빌드가 깨지기 때문에 메인 빌드가 깨지지 않도록하는 것이 좋습니다.

충분히 분명하기를 바랍니다. 이것을 적어두면 나에게 문제가 가장 명확 해졌다 :-).

--편집하다--

감사합니다. 나는 "수정 확인"을 구현할 것이라고 생각하지만 빌드가 너무 빠르기 때문에 빌드 유물을 확인하지 않을 것입니다. 또한 외부 프로젝트의 종속성을 다루는 방법 (예 : 프로토 타입, SWFOBJECT 등).

도움이 되었습니까?

해결책

나는 그것들을 한 번 빌드하고/public/ext/some_dependency/ref의 빌드 아티팩트를 확인하고 (그 폴더의 이름 지정은 당신에게 달려 있습니다 :-)) 거기에서 참조하십시오.

내 주된 이유는 제품 빌드를 할 때마다 외부 종속성을 구축 할 필요가 거의 없기 때문입니다. 일반적으로 외부 의존성은 거의 변하지 않아야합니다. 또한 코딩 단계에서 불안정성을 도입하지 않기 위해 외부 의존성 변경을 선택할 때 엄격한 제어를 원합니다.

이에 대한 확장으로, 외부 종속성 만 빌드하고 일부 외부 조건 (종속성 소스 폴더 또는 다른 것의 커밋)에 대해 위에서 언급 한 폴더에서 확인하는 별도의 CI 작업을 추가합니다.

다른 팁

내가 가지고있는 권장 사항 중 하나 (Mike Mason의 실용 버전 제어 책에서 나온 것)는 외부의 특정 개정을 언급하기 위해, 따라서 변경을 명시 적으로 선택할 때까지 항상 동일한 버전의 외부 종속성을 얻을 수 있도록합니다.

이 시점에서, 당신은 아마도 그것이 작동하는지 확인하기 위해 대화식으로 한 번 구축했을 것입니다. 따라서 매번 빌드에 의존하는 것은 실제로 문제가되지 않으므로 빌드 작업에 약간의 간접을 추가 할 필요가 없습니다.

간접성을 선택하고 어떤 이유로 든 외부에서 빌드가 실패하면 다음 Nant 작업이 이전 바이너리를 선택하므로 누락 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top