4

런타임에 앱의 제목 표시 줄에 표시되는 빌드 ID (컴파일 타임에 생성 됨)를 기록 할 사람이 있습니까?Java 응용 프로그램에서 빌드 ID 얻기

이클립스에서 빌드하면 ID 만 있으면됩니다. 제목까지 전달할 수 있습니다.

+0

어떤 도구를 사용하고 있습니까? –

+1

난 그냥 이클립스 (안드로이드에 대한 ADT와 함께) 건물입니다. 그래서 현재 빌드 아이디가 생성되지 않았습니다. 먼저 생성 된 하나를 생성해야합니다 (Maven은 그렇게합니까?). 그런 다음 런타임에 응용 프로그램에서 액세스합니다. –

+0

이 게시물의 전체적인 설명은 다음과 같습니다 : http://rterp.wordpress.com/2012/03/16/stamping-version-number-and-build-time-in-properties-file-with- maven/also useful : http://stackoverflow.com/questions/2469922/generate-a-version-java-file-in-maven –

답변

3

Ant를 사용하는 경우 "jar"또는 "package"대상을 쉽게 설정하여 현재 시간 소인을 포함하는 파일을 생성하고이를 jar 출력에 포함시킬 수 있습니다.

Maven을 사용하는 경우 the antrun plugin을 사용하여 Ant로 내려가는 것과 같은 유사한 방법을 얻을 수있는 몇 가지 방법이 있습니다.

+0

안녕하세요. 조금 늦었 겠지만 $ {maven. build.timestamp} Nicolas Toublanc이 http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide?focusedCommentId=136675856#comment-136675856에 게시했습니다. – ATorras

0

이클립스에서 완전히 빌드하고 있다면, 필요한 정보로 소스 폴더에 리소스를 생성하는 빌드 액션을 만들어야한다. 속성 파일은 잘 수행 할 것이고 바이너리 출력으로 전달할 수있다. 런타임에 읽은 다음 보여줄 필요가있는 것을 할 수 있습니다.

2

빌드에 타임 스탬프를 사용하려는 경우 jar 또는 클래스 수정 날짜 또는 MANIFEST 파일에서 타임 스탬프를 얻을 수 있습니다.

Maven은 MANIFEST 파일을 jar의 모듈 버전 번호로 채 웁니다. 이것을 읽으면 사용중인 모든 Maven 모듈의 버전을 얻을 수 있습니다.

"고유 ID"의 타임 스탬프를 만드는 것은 모든 빌드가 다른 ID를 갖도록합니다.

4

(특히 구성을 통해 고유 한 빌드 번호를 생성 할 수 있지만) 빌드 번호를 svn에서 원하면 Maven을 사용하는 경우 buildnumber-maven-plugin을 확인하십시오.

당신은 단순히 당신의 pom.xml 파일에 다음과 유사한 조각을 추가

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>buildnumber-maven-plugin</artifactId> 
      <version>1.0-beta-3</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>create</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <doCheck>true</doCheck> 
       <doUpdate>true</doUpdate> 
      </configuration> 
     </plugin> 

다음 빌드 ID를 참조하기 위해 치어에서 나중에 $ {buildNumber}을 사용합니다. 나는 이것을 사용하여 maven-war-plugin을 사용하여 매니페스트에 해당 번호를 씁니다.

   <archive> 
        <manifest> 
         <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
        </manifest> 
        <manifestEntries> 
         <Implementation-Build>${buildNumber}</Implementation-Build> 
        </manifestEntries> 
       </archive> 
관련 문제