[SPRING] Spring 설정 파일에서 maven 프로젝트 버전에 접근하기
SPRINGSpring 설정 파일에서 maven 프로젝트 버전에 접근하기
페이지에서 현재 실행중인 웹 응용 프로그램 버전을 표시하고 싶습니다. 이 프로젝트는 Maven, Spring 및 Wicket을 기반으로합니다.
어떻게 든 maven의 $ {project.version}의 가치를 얻고 스프링 XML 파일에서 사용하고 싶습니다. Spring PropertyPlaceholderConfigurer를 사용하여 응용 프로그램에서 사용하는 설정에 대한 속성 파일을 읽는 방법과 비슷합니다.
Spring의 config에서 변수로 사용할 수있는 maven project.version이 있다면 다음과 같이 할 수 있습니다.
<bean id="applicationBean" class="com.mysite.web.WicketApplication">
<property name="version"><value>${project.version}</value></property>
</bean>
어떻게해야합니까?
해결법
-
==============================
1.이미 제안 된대로 Maven 필터링을 사용할 수 있습니다.
이미 제안 된대로 Maven 필터링을 사용할 수 있습니다.
아니면 Maven이 만든 META-INF 디렉토리에서 Spring으로 직접 만든 pom.properties 파일을 읽을 수도있다.
<util:properties id="pom" location="classpath:META-INF/groupId/artifactId/pom.properties" />
빈을 사용하십시오.
나중의 접근 방식의 유일한 단점은 패키지 단계에서 pom.properties가 생성된다는 것입니다 (테스트 중에는 존재하지 않습니다).
-
==============================
2.한 기술은 mavens 필터링을 사용하는 것입니다. 자리 표시자를 리소스 파일에 삽입하여 리소스 단계에서 빌드의 값으로 대체 할 수 있습니다.
한 기술은 mavens 필터링을 사용하는 것입니다. 자리 표시자를 리소스 파일에 삽입하여 리소스 단계에서 빌드의 값으로 대체 할 수 있습니다.
"리소스 파일을 어떻게 필터링합니까?" Maven 시작하기 가이드
-
==============================
3.@PropertySource 주석을 사용하여 Maven에서 만든 pom.properties 파일을 META-INF 디렉토리에 추가합니다. 패키지 단계 이전에는 파일이 존재하지 않습니다. 테스트하는 동안 오류를 방지하려면 ignoreResourceNotFound = true를 설정하고 읽을 속성에 기본값을 추가하십시오 (예 : 아래에 없음).
@PropertySource 주석을 사용하여 Maven에서 만든 pom.properties 파일을 META-INF 디렉토리에 추가합니다. 패키지 단계 이전에는 파일이 존재하지 않습니다. 테스트하는 동안 오류를 방지하려면 ignoreResourceNotFound = true를 설정하고 읽을 속성에 기본값을 추가하십시오 (예 : 아래에 없음).
@Service @PropertySource(value = "classpath:META-INF/maven/io.pivotal.poc.tzolov/hawq-rest-server/pom.properties", ignoreResourceNotFound=true) public class MyClass { private String applicationPomVersion; @Autowired public MyClass(@Value("${version:none}") String applicationVersion ) { this.applicationPomVersion = applicationVersion; } public String getApplicationPomVersion() { return this.applicationPomVersion; } }
-
==============================
4.우리는 웹 애플리케이션 외부에 특성 파일을 배치합니다. 그런 다음 파일을 배포 할 때 필터링 할 수 있습니다.
우리는 웹 애플리케이션 외부에 특성 파일을 배치합니다. 그런 다음 파일을 배포 할 때 필터링 할 수 있습니다.
Jetty를 사용하는 경우 파일을 $ JETTY_HOME / resources 아래에 두거나 extraClassPath 기능을 사용하여 런타임에 속성 파일을로드 할 수 있습니다.
-
==============================
5.응용 프로그램 버전을 모으는 올바른 방법은이 스레드에서 설명한 것입니다 : https://stackoverflow.com/a/2713013/840635 getClass (). getPackage (). getImplementationVersion ().
응용 프로그램 버전을 모으는 올바른 방법은이 스레드에서 설명한 것입니다 : https://stackoverflow.com/a/2713013/840635 getClass (). getPackage (). getImplementationVersion ().
from https://stackoverflow.com/questions/3886753/access-maven-project-version-in-spring-config-files by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 동적 데이터 소스로 Spring AbstractRoutingDataSource를 사용하는 방법? (0) | 2019.01.18 |
---|---|
[SPRING] Spring 관리 빈에서 @ManagedProperty가 null입니다. (0) | 2019.01.18 |
[SPRING] 간단한 예제 프로젝트에서 Spring 프레임 워크 로그 레벨을 변경 하시겠습니까? (0) | 2019.01.18 |
[SPRING] Aspectj 및 개인 또는 내부 메소드 가져 오기 (0) | 2019.01.18 |
[SPRING] 데이터베이스 값을 가진 Spring 태그를 덮어 쓴다. (0) | 2019.01.18 |