배포파일에 대하여 버전을 확인할 수 있게 해달라는 요청이 있었다.
파일명 뒤에 버전 붙이는 시덥잖은 방법으로는 한계가 있다.
하지만 java의 배포파일에 버전을 넣는 방법은 없다. 내가 모르는 것인가?
그리하여 JAR나 WAR에 공통적으로 들어가는 MANIFEST.MF 파일에 버전을 넣기로 했다.
해당 프로젝트는 Ant로 빌드하기 때문에 ant에 설정값을 추가했다.
<manifest file="MANIFEST.MF">
<attribute name="Manifest-Version" value="4.2013.2" />
</manifest>
<war ... manifest="MANIFEST.MF">
<jar ... manifest="MANIFEST.MF">
JAR나 WAR나 마찬가지이다.
그리고 저 파일을 확인할 수 있게 하기 위하여 bat파일과 sh파일을 만들었다.
check_version.bat
@echo off
if "%1" == "" goto HELP
jar xf %1 META-INF/MANIFEST.MF
TYPE META-INF\MANIFEST.MF
DEL META-INF\MANIFEST.MF
RMDIR META-INF\
goto QUIT
:HELP
echo ERROR: Missing JAR OR WAR file name
echo Usage: check_version.sh $war or jar filename
:QUIT
check_version.sh
#!/bin/ksh
if [ "$1" == "" ]; then
echo "ERROR: Missing JAR OR WAR file name"
echo "Usage: check_version.sh $war or jar filename"
exit
fi
jar xf $1 META-INF/MANIFEST.MF
cat META-INF/MANIFEST.MF
rm META-INF/MANIFEST.MF
rm -r META-INF/
Reference
[1] Ant로 Manifest 설정 ( http://blog.naver.com/PostView.nhn?blogId=taekiblue&logNo=150033090682 )
'Devlopment > Java' 카테고리의 다른 글
static final Logger에 대한 고촬 (0) | 2018.02.08 |
---|---|
MessageFormat의 숫자 대신 문자열 키값을 이용해서 값을 넣고 싶을 때 (0) | 2018.01.12 |
Jackson, ObjectMapper 알지 못하는 프로퍼티도 허용하기 (0) | 2017.08.21 |
Clean Code - Null 리턴 (0) | 2016.02.26 |
[Gradle] Build 오류 - Could not fetch model of type 'EclipseProject' using Gradle distribution (0) | 2014.10.24 |
Java Network Framework, Netty (0) | 2013.04.23 |
JBoss 설치 및 연동 (0) | 2013.04.19 |
Mavn 및 플러그인 설치 (0) | 2013.04.19 |
Java 이전 버전을 받을 수 있는 URL (0) | 2013.03.28 |
Java 실행 (0) | 2013.01.31 |