복붙노트

[SPRING] Spring Boot Plugin에서 시스템 속성 정의하기

SPRING

Spring Boot Plugin에서 시스템 속성 정의하기

내 응용 프로그램 (컴파일 타임에 결정)에 몇 가지 시스템 속성을 지정하고 싶습니다.

나는 스프링 부트 메이븐 플러그인을 사용하여 컴파일하고있다.

현재이 질문에 따라 : Maven 프로젝트에 시스템 속성 지정  나는 다음과 같은 설정을 시도했다 (그러나 이것은 다른 플러그인을 위해 작동하지 않는다)

    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>application.boot.AppStarter</mainClass>
                <systemProperties>
                    <systemProperty>
                        <name>application.version</name>
                        <value>${application.version}</value>
                    </systemProperty>
                    <systemProperty>
                        <name>release.date</name>
                        <value>${timestamp}</value>
                    </systemProperty>
                </systemProperties> 
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

이 플러그인에서 속성을 어떻게 지정합니까?

해결법

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

    1.추가하는 자바 시스템 속성은 추가 된 프로세스에서만 액세스 할 수 있습니다. 따라서 Maven 빌드 중에 시스템 속성을 추가로 관리하더라도 빌드가 완료되면 더 이상 존재하지 않게됩니다.

    추가하는 자바 시스템 속성은 추가 된 프로세스에서만 액세스 할 수 있습니다. 따라서 Maven 빌드 중에 시스템 속성을 추가로 관리하더라도 빌드가 완료되면 더 이상 존재하지 않게됩니다.

    항아리를 다른 사람에게 배포하면 어떻게됩니까? 이러한 속성을 어떻게 사용할 것으로 기대합니까?

    런타임에 artifactId 및 버전에 액세스하는 방법을 보려면이 게시물을 참조하십시오. 비슷한 방식으로 타임 스탬프 항목을 src / main / resources / project.properties에 추가 할 수 있습니다

    buildTimestamp=${timestamp}
    

    timestamp는 project.version 또는 project.artifactId와 같은 미리 정의 된 속성이 아니므로 Maven 속성 $ {maven.build.timestamp}에서 타임 스탬프를 추출하고 timestamp 속성에 값으로 설정해야합니다. 이것은 이미이 질문에 대답되어 있습니다.

  2. from https://stackoverflow.com/questions/26574004/defining-system-properties-in-spring-boot-plugin by cc-by-sa and MIT license