2008-10-14 5 views
7

초보자 용 질문, 저와 함께 : 저는 어떤 상황에서 nant 나 msbuild와 같은 빌드 도구를 사용해야하는지 궁금합니다. 중간 크기의 응용 프로그램 (.net 3.0)에서 일하고 있습니다. 모든 개발자는 자신의 작업을 수행하고 자신의 컴퓨터에서 자신의 코드 변경 사항을 저장소로 확인합니다. 일단 다 끝나면 저장소에서 모든 코드를 가져 와서 내 컴퓨터에서 깨끗한 빌드를 만들고 바이너리를 배포합니다. 호기심에서 벗어나 빌드 툴은 어디에 있습니까?빌드 도구를 언제 사용합니까?

답변

14

짧은 대답은 항상 있습니다.

각 개발자는 코드를 확인하기 전에 빌드 스크립트를 사용하여 빌드해야합니다. 릴리스를 작성하는 사람은 빌드 스크립트를 사용하여 릴리스를 빌드해야합니다. 빌드 봇은 빌드 스크립트를 사용하여 체크인 된 코드를 빌드하고 테스트해야합니다.

이렇게하면 모든 개발자, 테스터 및 빌드 봇이 일관되고 반복 가능한 빌드를 가질 수 있습니다. 결국, The F5 Key Is Not a Build Process.

+0

조금 지나치지 않습니까? 예. 한 번 완료되면 2 일간의 1 인 탐사 프로젝트를위한 빌드 스크립트에서 20 분을 보내고 다시 보관할 수 있습니까? – ddimitrov

+1

@ddimitrov : 네, 그만한 가치가 있습니다. 나는 99 %의 시간을 내기를 원한다. "2 일간의 Exporation"은 생산 코드의 핵심 부분이 될 것이다. (아마도 내부 도구가 아니라 제품이지만 여전히 중요하다.) – rmeador

+0

코드 링크가 끊어졌으며 이제 사이트의 기본 페이지로 리디렉션됩니다. 참조 된 기사는 https://blog.codinghorror.com/the-f5-key-is-not-a-build-process/ –

0

아무 것도 자동화하지 않으려면 nant/msbuild를 사용하는 것이 좋습니다. 예 : 1. 확인 2. 빌드 3. 테스트 및 코드 적용

0

Visual Studio로 개발 중이십니까? 이 경우 Visual Studio의 기본 빌드 엔진이므로 이미 msbuild를 사용하고 있습니다. 실제로 Visual Studio 프로젝트 파일은 msbuild 스크립트에 지나지 않습니다.

이외에도 전용 빌드 시스템에서 빌드 엔진을 사용할 수 있으므로 Visual Studio를 설치하지 않고도 무인 설치가 가능합니다. 단위 테스트를 위해서도 사용할 수 있습니다.

2

모든 사소한 응용 프로그램에는 '빌드 도구'가 필요하다고 생각합니다. 우리는 내가 일하는 곳에서 지속적인 통합이라는 용어를 사용합니다. 매우 예외적 인 경우가 있습니다 (예 : 기능 X의 작동 방식을 배우기 위해 샘플 앱을 구축 중입니다.)하지만 그 외에도 단단한 빌드 프로세스가 있다는 것을 결코 후회하지 않을 것입니다.

개발 팀이 한 명으로 구성된 경우 ... 여전히은 리포지토리, 빌드 도구 및 여러 개의 테스트 스위트를 포함한 빌드 시스템을 설정합니다. 예, 빌드 시스템을 유지 관리하는 데는 시간과 비용이 들지만 비용은 많이 듭니다. (저는 6 명의 개발자로 시작한 프로젝트에서 40 개월 동안 일했으며 지금은 약 30 명의 개발자가 참여하고 있습니다. 횟수)를 줄이고 품질 문제가 더 빨리 감지되면 문제를 해결할 수 있습니다.

+0

지속적인 통합 (현재 현재 수행중인 작업을 구현하는 데 도움이되는 항목)은 빌드 도구가있는 것과 약간 다르지만 자동화 된 빌드가 없으면 불가능합니다. – workmad3

4

빌드 프로세스가 하나의 명령보다 길어질 때 빌드 도구를 사용해야합니다. 표준 빌드 프로세스를 하나의 명령으로 다시 가져 오는 데 사용해야합니다. 빌드 프로세스가 하나의 명령보다 길면 빌드 중에 누락/중복/잘못된 명령에서 오류가 발생할 기회가 있습니다.

0

zacherates의 대답에 동의하고 확장 ... 예, 항상 반복 가능한 빌드 프로세스가 있어야합니다. 기술적으로 Visual Studio 프로젝트는 MSBuild 파일이지만, "공식적인"빌드 프로세스를 개발 환경과 분리하는 것이 좋습니다.

내 생각에 팀이 얼마나 큰지 (또는 작은) 상관이 없습니다. 나는 NAnt와 CruiseControl.NET 을 집에서 사용합니다., 제가 일하는 경향이있는 곳은 모두 스크래치 프로젝트와 실험입니다. 직장에서는 유사한 설정을 사용하지만 NAnt 스크립트가 함께 쓰이는 방식으로 조금 더 구조화되어 있습니다.

확실히 살펴볼 가치가 있습니다.치료법은 아니지만 모든 빌드가 출시되었을 때와 야생에있는 빌드를 정확히 파악하는 것이 가장 좋습니다. 컴파일 된 코드를 식별 할 수 있다는 것이 문제 해결 전투의 절반입니다! :)

6

빌드를 수행하는 데 IDE를 사용하는 것처럼 들립니다. 본질적으로 빌드 도구입니다. 이미 하나를 사용하고 있습니다. 사용중인 도구가 솔루션보다 문제가되면 도구를 전환해야합니다.

2

릴리스를 시작하거나 빌드가 특정 수의 수동 단계를 초과 할 때 (성가시기 시작하면 알아 차릴 것입니다.) 흥미로운이 주제에 대해 이전 blog entry을 작성했습니다.