2011-12-20 1 views
0

:ImplementedVersion는 간부에 액세스 할 수 없습니다 :이 우리의 PRODUKT에 버전 번호를 추가 how2 사용한 자바 대상

지금 mvn assembly:single와 항아리를 구축 http://www.christophkiehl.com/easy-way-to-display-your-apps-version-using-maven-and-manifest 내가 올바른 버전을 참조하십시오. 하지만 난 그냥 ... mvn exec:java 내가 널 수와

모든 것을 실행할 때 어떤 난 그냥 비 항아리에서을 programm를 시작할 때 널 (null)을 반환하지 않습니다 App.class.getPackage().getImplementationVersion() 그렇게해야합니까?

답변

1

버전 번호를 추가하는 데 사용한 기술은 jar로 빌드 한 경우에만 작동합니다.

다른 방법으로 빌드하는 동안 프로젝트 버전으로 업데이트되는 등록 정보 파일을 갖게되는데이 등록 정보 파일은 Java 코드에서 읽습니다.

말, 당신은 당신이 App.class.getPackage().getImplementationVersion()를 호출 장소에서 항목

product.version=${project.version} 

을 가지고 src/main/resources에서 파일 version.properties을 가지고, 당신은이 속성을 읽고 내용을 표시합니다.

이것은 jar 및 non-jar 경우 모두에서 작동합니다.

업데이트 : 당신은 자원에 대한 필터링을 가능하게하는 치어를 업데이트해야합니다 - 기본적으로 (자세한 내용은 this 참조) 아래의 같은 조각을 추가 할 수 있습니다.

<resources> 
    <resource> 
    <directory>${basedir}/src/main/resources</directory> 
    <filtering>true</filtering> 
    </resource> 
</resources> 
+0

이 속성 파일의 버전을 추출하려면 pom 파일에 뭔가를 추가해야합니까, 그렇지 않으면 자동으로 작동하지 않습니까? – reox

+0

@reox. 필요한 변경 사항에 대한 답변을 업데이트했습니다. – Raghuram

관련 문제