문제

을 받을 때 버그 보고서 또는 그것-사 작업 메시지가 나의 하나 이니셜 질문은 항상 버전은 무엇입니까?다른 빌드에있는 많은 단계의 테스트,계획 및 배포 이것은 종종 아닌 사소한 질문입니다.

나의 경우 해 Java JAR(ear,항아리,rar,전쟁이)파일을 나는 볼 수 있에서 항아리로 전환하여 동일한 분,버전 또는 태그는 소스의 출시된 JAR.

나는 어떻게 최고의 조정 ant 구축하도록 프로세스의 버전 정보를 svn checkout 남아서 만들어진 건축?

나의 라인을 따라 생각:

  • 추가 버전 파일이 있지만,어떤 콘텐츠가 있습니까?
  • 에 정보를 저장하 META-INF 파일이 있지만,어떤에서 제공하는 콘텐츠가 있습니까?
  • 복사원으로 결과는 아카이브
  • 추가 svn:속성을 모두 소스와 함께 키워드는 장소에서 컴파일러는 잎들

나는 끝까지 사용하여 svnversion 접근(받 적)기 때문에,그 검사를 전체 하위트리에 반대 svn 정보 보인은 현재 파일이/디렉토리에 있습니다.이를 위해 내가 정의된 SVN 작업에서 개미 파일을 만들과 휴대성을 자랑합니다.

<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask">
  <classpath>
    <pathelement location="${dir.lib}/ant/svnant.jar"/>
    <pathelement location="${dir.lib}/ant/svnClientAdapter.jar"/>
    <pathelement location="${dir.lib}/ant/svnkit.jar"/>
    <pathelement location="${dir.lib}/ant/svnjavahl.jar"/>
  </classpath>        
</taskdef>

지 모든 구축한 결과에 webservices.귀 파일 배포하기 전에 동일하게 유지되어야 합니다 이 때문에 업데이트 응용 프로그램에서 서버입니다.를 만드는 파일을 실행은 여전히는 옵션이지만,그때까지 난 그냥 버전 정보를 포함한 파일입니다.

<target name="version">
  <svn><wcVersion path="${dir.source}"/></svn>
  <echo file="${dir.build}/VERSION">${revision.range}</echo>
</target>

Refs:
svnrevision: http://svnbook.red-bean.com/en/1.1/re57.html
svn 정보 http://svnbook.red-bean.com/en/1.1/re13.html
subclipse svn 작업: http://subclipse.tigris.org/svnant/svn.html
svn 클라이언트: http://svnkit.com/

도움이 되었습니까?

해결책

svnversion 명령에 귀하의 개미 스크립트를 얻는 개인정보취급방침 버전번호:

<exec executable="svnversion" outputproperty="svnversion" failonerror="true">
  <env key="path" value="/usr/bin"/>
  <arg value="--no-newline" />
</exec>

다음 사용 ${svnversion} 속성에서 어딘가에 당신의 귀에 있습니다.우리는 그것이 귀에 파일의 이름을,하지만 당신은 수도에 넣어 읽어보기 또는 버전의 파일 내부에 귀를 지정하거나,버전에서 귀 s META-INF/나타납니다.mf:

<!-- myapp-r1234.ear -->
<property name="ear" value="myapp-r${svnrevision}.ear" />

다른 팁

당신이 제공하려는 파괴점 및 저장소의 번호입니다.로에서 설명 액세스하는 방법 현재의 파괴를 구축 번호?, 이, svn info 명령을 줄 것이다 당신은 이 정보를 사용하여 다음을 수행할 수 있습니다 버전의 운영체제를 구축 파일이나 장소에서 다른 파일에 있는 건물의*AR 파일이 있습니다.너무 마음에 다른 고려할 수 있습 사용 XmlProperty Ant 작업 관련 정보를 추출하에서의 출력 svn 정보--xml 명령

체크아웃 jreleaseinfo 프로젝트입니다.담 ANT 작업을 생성할 수 있는 java 클래스에서 호출할 수 있 런타임을 표시한 정보를 위해 귀하의 프로젝트입니다.

나는 단순하다.

또한 이 질문: 를 구축하고 버전 번호 매기기 위해 자바 프로젝트(ant,cvs,허드슨)

그것은 포함한 여러 가지 유용한 코드 조각.

의 상단에서 내 마음입니다.태그에 대한 각각의 항아리 구축?

우리의 첫 번째 부분은 우리를 구축을 만들 version.txt 파일에서 루트 패키지의 덤프 태그에 사용하는 코드를 확인서(우리의 경우)CVS...또한,이 마지막 부분의 우리 빌드 프로세스를 검사히 귀으로 다시 CVS 나중에 참조할 수 있습니다.

그러면 우리는 문제가 있으로 웹 애플리케이션-그것은 단지의 경우를 묻는 기자 칠/app/version.txt -거기에서 우리가 드릴 수 있습니다 아래로 특정 빌드에서 역사 CVS 을 찾는 관련 구성품(핸들을 다른 버전의 라이브러리에서 앱)를 찾 오류가 있습니다.

는 방법을 확실하지 않은 많은 도움이 이것은 우리의 지원이 민속 그러나 그것은 확실히 그들에 대해 불평 되고 있다!

자동 빌드 및 태그(날짜 스탬프)에 codebase 빌드가 성공적으로(unittest 에 대한 여러 당연히).

에서 당신의 배달 프로세스를 제공 할뿐만 아니라 태그가 구축하여 고객입니다.이 방법은 제어,그리고 배치할 수 있습 태그 이름 readme.txt 어딘가에,또는 이름의 귀 파일을 반영한 이름.

나 개인적으로 전환시 CVS,그리고 이것은 이유 중 하나입니다.에 CVS,나는 수가 있는 클래스 보고서 그것은 태그가 있습니다.내 모든 jar 파일을 포함하는"기본"그들에게 실행 가능한 상태가 됩니다.지원과 함께 질문에,나는 고객에게 요청을"java-jar somejar.jar"보낼 경우에도 출력을 나와 함께 질문입니다.

이 방법의 확인을 구축들-다시 사용하여,그리고 나는 심지어 같은 정보가 있 java 버전 OS 입력 및 버전입니다.지 않고 있어 고객 응답하는 이상한 질문입니다.

그것은 간단하지만 아주 효과적입니다.

왜 빌드 번호가로 특성 파일...이는 다음을 쉽게 읽을 수 있는 자바고 출력하는 데 도움|에 대한 대화 상자(애플릿/응용 프로그램),웹 페이지 바닥글 또는 어떤 다른 GUI 할 수 있습니다.

(참조 바닥에 모든 SOF 페이지..........는 SVN 버전 번호이다.)

보 부하보다 더 쉽게 찾고 전쟁에서/이어/항아리 등을 쉽게 시간은?

저장 절대 저장소 수정의 부분으로 내 전체 버전 번호입니다.이 사람들에게 빠른 눈을 보면 특정 변경에서 지정된 버전이거나지 않습니다.

우리는 또한 스토어 버전 번호/건축 date/등에서는 매니페스트 파일의 귀으로 사용자 정의 속성,이들은 대부분 이것은 정보용으로만 제공됩니다.우리는 또한 상점에 properties 파일로 만들어지는 우리의 항아리,그래서 응용 프로그램은 그것을 읽을 수 있습니다.

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