Maven /从构建中删除时间戳

时间:2014-04-22 09:34:01

标签: java maven-3 maven-bundle-plugin

可能是一个不寻常的问题。

我正在从源代码构建apache-log4j-1.2.17,一切正常,但我想稍微修改一下这个过程并且不知道如何。

即,我想从清单文件中删除 Bnd-LastModified 属性,并从 pom.properties 文件中删除时间戳评论。有没有我想念的配置?我可以“手动”删除它们(shell脚本),但这似乎不对。

2 个答案:

答案 0 :(得分:1)

我计划比较ZIP文件的MD5,以确定我是否需要在部署期间上传OSGi捆绑包JAR。我假设如果捆绑JAR中的文件是相同的,那么捆绑JAR本身就是一样的。在构建之间,我发现您描述的时间戳是构建之间唯一的文件内差异。在使用shell脚本来提取那些使所有文件相同的时间戳之后 - 我发现由于文件时间戳,捆绑JAR仍然不同。

我最终比较了两个捆绑JAR的unzip -lv输出以确定相等性:

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 user@$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

我的本​​地计算机是Mac,远程计算机正在运行ubuntu,因此md5md5sum运行。 awk无意义是从unzip -l输出中删除时间戳。代码完成后,如果differentt,则文件不同;否则,文件是相同的。

答案 1 :(得分:1)

我遇到了同样的问题,我刚刚找到谷歌上的标题问题的答案。我意识到这对你来说已经晚了一年。

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