可能是一个不寻常的问题。
我正在从源代码构建apache-log4j-1.2.17,一切正常,但我想稍微修改一下这个过程并且不知道如何。
即,我想从清单文件中删除 Bnd-LastModified 属性,并从 pom.properties 文件中删除时间戳评论。有没有我想念的配置?我可以“手动”删除它们(shell脚本),但这似乎不对。
答案 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,因此md5
与md5sum
运行。 awk
无意义是从unzip -l
输出中删除时间戳。代码完成后,如果different
为t
,则文件不同;否则,文件是相同的。
答案 1 :(得分:1)
我遇到了同样的问题,我刚刚找到谷歌上的标题问题的答案。我意识到这对你来说已经晚了一年。
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
<instructions>
<_removeheaders>Bnd-LastModified</_removeheaders>