2011-05-09 12 views
0

현재 물건을 확인하는 정보를 포함하는 ANT 스크립트를 작성 중입니다. 저는 True Blue Software의 SnapshotCM을 버전 컨트롤로 사용하고 CruiseControl을 야간 빌드를위한 프레임 워크로 사용하고 있습니다. 기본적으로 내 버전 제어에서 발견 된 최신 버전을 항상 확인하고 명령을 실행해야합니다. 이 경우 예제는 다음과 같습니다.버전 관리에서 최신 버전 확인

<project name="nightly_build" default="main" basedir="checkout"> 
    <target name="init"> 
     <property file="initial.properties"/> 
    </target> 
    <target name="main" depends="init"> 
      <!-- need some code to set variable --> 
      <!-- need some code to increment variable --> 
     <!-- need some code here to check for the latest version --> 
     <exec executable="C:/Program Files/True Blue Software/SnapshotCM/wco.exe"> 
      <arg line='-f -R "C:/Work/7.10.000_Tip/7.10.000_Tip_GUI_TEST/"'/> 
     </exec> 
    </target> 
</project> 

위 코드에서 "initial.properties"파일을로드합니다.

  • (이 새로운 변수가 X하자) 초기 속성을 1로 BUILD_NUMBER에게

  • 증가 BUILD_NUMBER를 얻을 수

  • 파일

    1. 부하 : 알고리즘은 다음과 같이해야한다 X가 발견되면 X를 1 씩 증가시킵니다 (찾을 수없는 경우 6으로 점프).

    2. Major_Version=7 
      Minor_Version=10 
      Project_Number=100 
      Build_Number=036 
      Product_Version=${Major_Version}.${Minor_Version}.${Project_Number}.${Build_Number} 
      
      : X이 발견되면, 다른 4 (X를 찾을 수없는 때까지)

    3. <arg line ='-f -R "C:/..../7.10.100.X..../"'/>

    initial.properties 파일 내부의 빌드 번호를 사용하는 반복은 다음과 같다

    아무도 나를 안내 할 수 있습니까?

  • 답변

    1

    개미는 프로그래밍 언어가 아닙니다. 그것은 의존성 매트릭스 언어입니다.

    즉, Ant에서는 실행 순서를 지정하지 않습니다. Ant는 타겟을 실행하는 데 필요한 순서를 계산합니다. 또한 Ant가 루프를 수행 할 수 없거나 속성이 설정된 후에도 값을 변경할 수 없다는 것을 의미합니다.

    Ant를 기반으로하는 패키지가 몇 가지 있습니다. 이전 대기 모드는 Antcontrib입니다. Antcontrib에는 변수의 개념이 있으며이 속성은 변경 가능한 속성과 같습니다. 또한 다양한 루핑 구조를 가지고 있습니다. 그러나 <foreach> 또는 <for> 작업이 원하는 작업을 수행 할 수 있는지 확실하지 않습니다 ...

    순차적으로 다음 빌드 번호를 검색하는 것은 쉘 스크립트에서 수행 할 수있는 작업입니다. 사실, 나는 이것을 적극 권장합니다.

    빌드에만 빌드를 사용하고 내 build.xml 파일 외부에 내 CM 기능을 유지합니다. 대신 빌드 시스템과 관련이없는 모든 작업을 수행하기 위해 빌드 시스템에 의존합니다. 여기에는 코드 체크 아웃, 아티팩트 저장 및 단위 테스트 컴파일이 포함됩니다. 이렇게하면 내 연속 빌드 시스템 또는 버전 제어 시스템을 사용하는 방식을 변경하면 내 build.xml 파일을 수정할 필요가 없습니다.

    +0

    안녕하세요, 쉘 스크립트에서 다음 빌드 번호를 쉽게 검색 할 수 있습니까? 하지만 내가 아는 바로는 버전 관리 소프트웨어 대신 빌드 번호를 검색해야합니다. 이것은 쉽게 할 수 없습니다. imo – jeremychan

    +0

    쉘 스크립트에서 Ant보다 빌드 번호를 더 쉽게 검색 할 수 있습니다. Ant에는 빌드 번호를 추출하는 메소드가 내장되어 있지 않으며 SnapshotCM에 Ant 플러그인이 있는지 알지 못합니다.결국, 어쨌든 셸 스크립트를 호출하게 될 것입니다. –