java snapshot이란 이클립스 - 코드에서 maven pom.xml에서 버전 검색





3 Answers

패키지 아티팩트는 다음과 같은 내용의 META-INF/maven/${groupId}/${artifactId}/pom.properties 파일을 포함합니다.

#Generated by Maven
#Sun Feb 21 23:38:24 GMT 2010
version=2.5
groupId=commons-lang
artifactId=commons-lang

많은 응용 프로그램은이 파일을 사용하여 런타임에 응용 프로그램 / jar 버전을 읽습니다. 설정이 필요하지 않습니다.

위 접근법의 유일한 문제점은이 파일이 package 단계에서 생성되었으므로 테스트 중에는 존재하지 않는다는 것입니다 (이를 변경하기위한 Jira 문제가 있습니다, MJAR-76 참조). 이것이 당신에게 이슈가된다면, Alex가 묘사 한 접근법이 나아갈 길입니다.

메이븐

프로그래밍 방식으로 코드에서 maven의 pom.xml에서 버전 번호를 검색하는 가장 간단한 방법은 무엇입니까?




또한 Maven을 사용하여 앱 버전 번호를 표시하는 쉬운 방법에 설명 된 방법이 있습니다 .

이것을 pom.xml에 추가하십시오

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>test.App</mainClass>
            <addDefaultImplementationEntries>
              true
            </addDefaultImplementationEntries>
          </manifest>
        </archive>
      </configuration>
    </plugin>
  </plugins>
</build>

다음을 사용하십시오.

App.class.getPackage().getImplementationVersion()

나는이 방법이 더 간단하다는 것을 발견했다.




jar 또는 war와 같은 mvn 패키지를 사용하는 경우 다음을 사용하십시오.

getClass().getPackage().getImplementationVersion()

아카이브에서 생성 된 META-INF / MANIFEST.MF (pom.xml의 버전으로 설정 됨)의 "Implementation-Version"속성을 읽습니다.




Related