NAnt 및 이중 플랫폼 빌드-Windows 및 Mono / Linux에서 빌드하는 가장 좋은 방법

StackOverflow https://stackoverflow.com/questions/32027

문제

NAnt를 처음 사용하지만 Ant 및 CruiseControl에 대한 경험이 있습니다.

내가하고 싶은 것은 SVN 프로젝트에 필요한 모든 도구 (NUnit 및 Mocks 등)가 포함되어있어 새로운 컴퓨터에서 확인하고 빌드 할 수 있도록하는 것입니다.이 전략은 J.P Boodhoo가 여기 에서 설명합니다.

지금까지는 Windows에서만 실행하고 싶지만 Linux에서 확인하고 Mono에 대해서도 빌드 / 테스트 / 실행할 수 있기를 원합니다.SVN 프로젝트 외부의 종속성을 원하지 않습니다.프로젝트에 두 세트의 도구가 있어도 상관 없지만 NAnt 빌드 파일은 하나만 필요합니다

가능해야합니다.하지만 어떻게해야합니까?트릭은 무엇입니까 / '젊은 플레이어를위한 함정'

도움이 되었습니까?

해결책

이것은 특별히 어려운 운동이 아니어야합니다. 절반은 관련 대상을 실행하기 위해 Ant를 사용하여 Java에서 실행되고 나머지 절반은 UI 용 .Net (C #)이므로 내 프로젝트 중 하나에서 상당히 유사한 작업을 수행합니다. 프로젝트는 개발을 위해 Windows 머신에서 실행되지만 서버 (Java)는 Linux를 실행하지만 UAT 환경 (Linux)에서는 nunit (통합 테스트)을 실행해야합니다. 이것의 진짜 속임수 (정말 어려운 속임수는 아님)는 두 환경 모두에서 실행될 수있는 NAnt 빌드 파일을 갖는 것입니다. 이것은 여기에서하려는 것과 똑같은 것처럼 보입니다.

물론 먼저 Mono에 NAnt를 설치해야한다는 것을 알고 있습니다. 라코 디스

그런 다음 빌드 파일을 우려 사항을 분리하는 방식으로 작성해야합니다. 예를 들어 Windows 용으로 작성된 빌드 파일의 일부는 Linux에서 작동하지 않습니다. 따라서 빌드 파일에서 특정 대상으로 나누면됩니다. 그 후 명령 줄에서 특정 대상을 실행할 수있는 여러 가지 방법이 있습니다. 예는 다음과 같습니다. 라코 디스

간결하게하기 위해 양쪽을 모두 생략했습니다. 깔끔한 점은 두 환경 모두에서 NUnit과 NAnt를 사용할 수 있으며 종속성 관점에서 작업이 정말 쉬워진다는 것입니다. 그리고 각 실행 파일에 대해 해당 환경에서 작동하는 다른 것으로 교체 할 수 있습니다 (예 : MSBuild의 경우 xBuild, 거북이의 경우 svn 등)

Mono의 Nunit 등에 대한 자세한 도움말은 이 멋진 게시물 .

도움이되기를 바랍니다.

건배

롭 G

다른 팁

@Rob G-헤이!그것은 내 게시물입니다!;)

다른 좋은 예를 보려면 NUnit 소스 코드를 찾아보세요.Mono에서 빌드하고 테스트하고 있는지 확인하기 위해 가능한 한 Charlie와 긴밀하게 협력합니다.그는 할 수있을 때마다 달리려고합니다.

Nant와 같은 많은 도구가 '즉시 사용 가능한'모노로 실행된다는 점은 주목할 가치가 있습니다. 라코 디스

작품

다음 템플릿을 사용합니다.모든 플랫폼 (Win의 경우 build, Linux의 경우 ./build.sh)에서 간단하게 빌드 할 수 있으며 빌드 스크립트의 중복을 최소화합니다. <시간>

NAnt 실행 파일은 tools\nant로 프로젝트와 함께 저장됩니다.

빌드 구성 파일은 MSBuild 또는 xbuild 중 사용할 빌드 도구를 결정합니다 (이 경우 Windows의 경우 VS2015 MSBuild 버전이 필요하며 필요에 따라 경로를 변경합니다).

build-csproj 빌드 타겟은 솔루션 내에 여러 프로젝트가있을 때 재사용 할 수 있습니다.

test-project 타겟은 필요에 따라 확장해야합니다.

build.bat 라코 디스

build.sh 라코 디스

default.build 라코 디스

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