복붙노트

[SPRING] POM에서 응용 프로그램 버전 가져 오기

SPRING

POM에서 응용 프로그램 버전 가져 오기

응용 프로그램에 대한 정보를 반환하는 데 사용되는 나머지 끝점이 있습니다 (지금까지만 응용 프로그램 버전) 그러나 지금까지이 정보는 하드 코딩되어 있으며, 변경하는 것을 잊어 버리는 것은 꽤 쉽습니다. pom 또는 manifest 파일에서 앱 버전을 검색하는 것이 좋습니다. 이러한 기능을 제공하는 프로젝트가 있습니까?

해결법

  1. ==============================

    1.Appinfo라는 멋진 프로젝트가 있습니다. 사용하고 즐기십시오! (추한 페이지가 있는데, 나도 알아 -하지만 작동 :)

    Appinfo라는 멋진 프로젝트가 있습니다. 사용하고 즐기십시오! (추한 페이지가 있는데, 나도 알아 -하지만 작동 :)

    또한 뛰어난 스프링 부트 액츄에이터 (Spring Boot Actuator)는 버전 정보를 웹 또는 REST에 게시 할 수있는 Info Endpoint라는 기능을 제공합니다.

  2. ==============================

    2.빌트인 매니페스트를 사용하는 것이 좋습니다.

    빌트인 매니페스트를 사용하는 것이 좋습니다.

    new Manifest(Application.class.getResourceAsStream("/META-INF/manifest.mf"))
    

    구체적인 impl-version :

    new Manifest(Application.class.getResourceAsStream("/META-INF/manifest.mf"))
                .getMainAttributes()
                .get(Attributes.Name.IMPLEMENTATION_VERSION)
    

    maven을 사용하면 다음을 사용하여 매니페스트를 만드는 것을 잊지 마십시오.

    <?xml version="1.0" encoding="UTF-8"?>
    <project>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>
    
  3. ==============================

    3.스프링 부트는 pom.xml에 정의 된 프로젝트 버전을 참조하고 액츄에이터를 사용하여 REST를 통해 노출시킬 수 있습니다 :

    스프링 부트는 pom.xml에 정의 된 프로젝트 버전을 참조하고 액츄에이터를 사용하여 REST를 통해 노출시킬 수 있습니다 :

    # application.properties
    endpoints.info.enabled=true
    info.app.version=@project.version@
    

    그런 다음 / info URL (예 : http : // localhost : 8080 / info)에 액세스하면 다음과 같이 반환됩니다.

    {"app": {"version": "<major.minor.incremental>"}}
    

    관련 항목 : 스프링 부트 / 스프링 웹 앱 임베디드 버전 번호

  4. ==============================

    4.Maven이나 Maven-Substitute-Plugin과 같은 자원 필터링을 사용할 수 있습니다.

    Maven이나 Maven-Substitute-Plugin과 같은 자원 필터링을 사용할 수 있습니다.

  5. from https://stackoverflow.com/questions/21045007/getting-application-version-from-pom by cc-by-sa and MIT license