2014-04-22 3 views
1

조금 특이한 질문입니다.Maven/빌드에서 타임 스탬프 제거

소스에서 apache-log4j-1.2.17을 빌드 중이며 모든 것이 제대로 작동하지만 프로세스를 약간 수정하고 어떻게되는지 알고 싶습니다.

즉, 나는 pom.properties 파일에서 매니페스트 파일 및 타임 스탬프 코멘트에서 BND-LASTMODIFIED 속성을 제거하고 싶습니다. 내가 놓친 구성이 있습니까? 나는 그들을 "수동으로"(셸 스크립트) 제거 할 수 있지만 그저 잘못된 것 같습니다.

답변

1

나는 동일한 문제를 가지고있다. 나는 단지 구글의 헤더 문제에 대한 해답을 발견했다. 나는 이것이 당신에게 1 년이나 그렇게 늦었다는 것을 깨닫는다.

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <configuration> 
    <archive> 
    <addMavenDescriptor>false</addMavenDescriptor> 
    </archive> 
    <instructions> 
     <_removeheaders>Bnd-LastModified</_removeheaders> 
+0

이미 실제로는 관계가 없지만 감사합니다. –

1

배포 중에 OSGi 번들 JAR을 업로드해야하는지 확인하기 위해 ZIP 파일의 MD5를 비교할 계획이었습니다. 나는 번들 JAR 내부의 파일이 동일하다면 번들 JAR 자체가 동일하다고 가정했다. 빌드 간, 필자가 설명했던 타임 스탬프는 빌드 간의 파일 내 유일한 차이점이라는 것을 알게되었습니다. 쉘 스크립트를 사용하여 모든 파일을 동일하게 만든 타임 스탬프를 뽑은 후에 파일 타임 스탬프로 인해 번들 JAR이 여전히 다른 것을 발견했습니다.

lhash=$(unzip -lv $HOME/staging/$bundle | sed -ne '/---/,/---/p' | sed -e '1d;$d;' | awk '{L="";for(i=1;i<NF;i++){if(i<5 || i>6){L = L " " $bundle}}print L}' | md5) 
rhash=$(ssh -i $HOME/.ssh/keys/keyfile.pem [email protected]$host "unzip -lv ~ubuntu/bundles/$bundle | sed -ne '/---/,/---/p' | sed -e '1d;\$d;' | awk '{L=\"\";for(i=1;i<NF;i++){if(i<5 || i>6){L = L \" \" \$bundle}}print L}' | md5sum | awk '{print \$1}'") 
if [ "$lhash" = "$rhash" ] 
then 
    different=f 
else 
    different=t 
fi 

내 로컬 컴퓨터가 맥과 원격 컴퓨터가 우분투, 따라서 md5md5sum을 실행 : 두 번들 JAR 파일이 평등을 결정하는

나는 unzip -lv 출력을 비교 끝났다. awk 넌센스는 unzip -l 출력에서 ​​타임 스탬프를 제거하는 것입니다. 코드가 완료된 후 differentt이면 파일이 다릅니다. 그렇지 않으면 파일이 동일합니다.