1

おそらく、少し変わった質問です。

ソースから apache-log4j-1.2.17 をビルドしていますが、すべて正常に動作しますが、プロセスを少し変更したいのですが、方法がわかりません。

つまり、マニフェスト ファイルからBnd-LastModifiedプロパティを削除し、 pom.propertiesファイルからタイムスタンプ コメントを削除したいと考えています。私が見逃している設定はありますか?それらを「手動で」(シェルスクリプト)削除できましたが、それは間違っているようです。

4

2 に答える 2

1

私は同じ問題を抱えており、Googleでヘッダーの問題に対する答えを見つけました。これはあなたにとって1年かそこら遅れていることに気づきました。

<plugin>
  <groupId>org.apache.felix</groupId>
  <artifactId>maven-bundle-plugin</artifactId>
  <configuration>
    <archive>
    <addMavenDescriptor>false</addMavenDescriptor>
    </archive> 
    <instructions>   
      <_removeheaders>Bnd-LastModified</_removeheaders>
于 2015-04-24T16:50:35.750 に答える
1

展開中に OSGi バンドル JAR をアップロードする必要があるかどうかを判断するために、ZIP ファイルの MD5 を比較することを計画していました。バンドル JAR 内のファイルが同じであれば、バンドル JAR 自体も同じであると想定しました。ビルド間で、あなたが説明したタイムスタンプがビルド間のファイル内の唯一の違いであることがわかりました。シェル スクリプトを使用してこれらのタイムスタンプを取得した後 (これによりすべてのファイルが同一になりました)、ファイルのタイムスタンプが原因でバンドル JAR が依然として異なることがわかりました。

最終的に、2 つのバンドル 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ファイルは異なります。それ以外の場合、ファイルは同じです。

于 2014-07-06T15:52:55.690 に答える