본문 바로가기

Thinking/Study

MANIFEST.MF 파일에서 버전 정보를 얻어오는 방법

728x90

어플리케이션의 버전을 표시하기 위해서 MANIFEST.MF 파일에서 정보를 가져올 수 있다.

Manifest-Version: 1.0

SCM-Revision: 23456

Implementation-Title: MyApp Maven Webapp

Implementation-Version: 2.0.0

Implementation-Vendor-Id: com.myapp

Build-Jdk: 1.7.0_60

Built-By: firstboos

Created-By: Maven Integration for Eclipse

Specification-Title: MyApp Maven Webapp

Specification-Version: 2.0.0

pom.xml 에서 Version 부분을 2.0.0 으로 바꾸고, maven build 를 하니, "Implementaion-Version" 과 "Specification-Version" 이 2.0.0 으로 바뀌었다. 그외 SCM(Source Code Management) (:svn 을 사용중) 의 리비전(revision) 번호를 얻어온다.


버전 정보를  웹 어플리케이션에 붙이기 위해서 여러 방법이 있겠지만(다음 블로그 글을 참조; http://www.javablog.fr/javaspring-get-and-display-the-version-from-manifest-mf.html ) Spring 3 을 사용하고 있다면, Spring EL 과 util:properties 을 이용해서  MANIFEST 정보를 가져올 수 있다.

<!--?xml version="1.0" encoding="UTF-8"?-->

<beans xmlns="http://www.springframework.org/schema/beans" 

xmlns:util="http://www.springframework.org/schema/util"

...

>


<util:properties id="data" location="classpath:config/data-access.xml">

<util:properties id="manifest" location="/META-INF/MANIFEST.MF">


</beans>


- Web(MyApp) 어플리케이션 구조

tomcat/

      \_ webapps/

               \_ MyApp/

                     \_ META-INF/

                               \_ MANIFEST.MF

                     \_ WEB-INF/

                               \_ classes/

                                       \_ config/

                                              \_ data-access.xml

                               \_ lib/

                               \_ view/

                               \_ web.xml


jsp 파일에 MANIFEST 정보를 표시한다.

<%@ page language="java" session="false" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<%@ taglib prefix="f" uri="http://www.springframework.org/tags/form"%>

<%@ taglib prefix="s" uri="http://www.springframework.org/tags"%>

...


<span><s:eval expression="@manifest['Implementation-Version']" />.<s:eval expression="@manifest['SCM-Revision']" /></span>


참조 :

http://www.javablog.fr/javaspring-get-and-display-the-version-from-manifest-mf.html

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html