2012-04-19 10 views
0

と一致していないので、私はまだこれを追跡するのに苦労しています:http://code.google.com/p/dkpro-core-asl/wiki/MyFirstDKProProjectエクリプス/ AntのMD5は、他のMD5に

/私は非常に奇妙なMD5のトラブルを持つ別の場所でスティックだ、と私はなぜ私のEclipseを理解していませんAntは、md5sum(cygwin)やPythonで計算できるmd5とは異なるmd5を計算します。

AntのMSGエクリプス/:

BUILD FAILED 

D:\eclipseWorkspace\maven.1334761781732\branches\1.2.x\de.tudarmstadt.ukp.dkpro.core.treetagger\src\scripts\build.xml:34: The following error occurred while executing this line: 
D:\eclipseWorkspace\maven.1334761781732\branches\1.2.x\de.tudarmstadt.ukp.dkpro.core.treetagger\src\scripts\build.xml:311: The following error occurred while executing this line: 
D:\eclipseWorkspace\maven.1334761781732\branches\1.2.x\de.tudarmstadt.ukp.dkpro.core.treetagger\src\scripts\build.xml:451: MD5 checksum mismatch for [la-tagger-little-endian.par]. 
Please verify the checksum and if necessary update this script. 
Expected: f959f8633ef842f069f0331ad19dc8b4 
Actual : bde1f6a63b2c5a658ba25a8eb90832a8 

OK]をクリックして、ファイルをFTPに変更された可能性があるとして、これが可能なもので、ここではANTのbuild.xmlのファイルの一部です:

<target name="la"> 
    <property name="version.la" value="2011050700"/> 

    <install-model-file url="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/latin-par-linux-3.2.bin.gz" 
     type="tagger" endianness="little-endian" language="la" encoding="ISO-8859-1" 
     md5="f959f8633ef842f069f0331ad19dc8b4"/> 
</target> 
物事がちょうど私のために奇妙に行く

があります::CYGWINを(手動もちろんないアスキーのfilezillaの、バイナリモードまたは自動でFTP経由でファイルをダウンロードするのafer)を使用して

$ md5sum latin-par-linux-3.2.bin.gz 
e77493eed28857bf93aca91c2a6e5a9b *latin-par-linux-3.2.bin.gz 

使ってPython:

import urllib 
import hashlib 
data = urllib.urlopen("ftp://ftp.ims.uni-stuttgart.de/pub/corpora/latin-par-linux-3.2.bin.gz").read() 
md5 = hashlib.md5() 
md5.update(data) 
print md5.hexdigest() 
e77493eed28857bf93aca91c2a6e5a9b 

または

def md5_for_file(filePath): 
    md5 = hashlib.md5() 
    file = open(filePath, 'rb') 
    while True: 
     data = file.read(8192) 
     if not data: 
      break 
     md5.update(data) 

    file.close() 
    return md5.hexdigest() 

print md5_for_file(r"D:\ftp.ims.uni-stuttgart.de.pub.corpora.20120419\latin-par-linux-3.2.bin.gz") 
e77493eed28857bf93aca91c2a6e5a9b 

ともMD5を計算するためにウェブからのフリーウェアを使用して、それらはすべて一致してしかし、あるANTの計算などとは異なります「実際」!

答えて

0

手動でmd5を計算するには、最初にファイルを抽出すると仮定します。

gunzipまたは7zipを使用してください。

+0

大丈夫です、あなたは私がばかだと思っています。私はすべてを抽出し、 'file = "tree-tagger"'パラメータで指定されたファイルでmd5を計算する必要があります! ありがとうございます。私はEclipse/Ant/Mavenのものには新しくて... – user1340802

0

私はDKProのコア開発者です。これらのMD5チェックを行う理由は、リモートファイルがそれ以上の通知なしに変更されたときに気付きたいことです。

あなた自身でMD5合計を計算する必要はありません。このスクリプトは、あなたが知っているMD5と実際に何が得られたかを伝えます。スクリプトを継続して実行したい場合は、build.xmlに記録されているMD5を「実際の」MD5として更新してください。ただし、バージョンを更新する必要があります。

次の一節は、私たちのwikiからのものであり、この背後にある論理的根拠を説明します。

ないすべてのリソースのを適切にメンテナでバージョン管理されています。アナウンスやバージョン番号の増加なしにリソースがある日から次の日に変化することがわかります(存在する場合)。したがって、build.xmlファイルに格納されているMD5チェックサムに対してすべてのリソースを検証します。このようにして、リモートリソースが変更されたかどうかがわかります。この場合、build.xmlファイルにメモを追加して、MD5の変更が対応するリソースのバージョンを更新したことに気づいたことを示します。

毎日build.xmlファイルをテストしないので、自分でリソースをパッケージ化しようとするとMD5チェックサムエラーが発生することがあります。このような場合は、テキストエディタでbuild.xmlファイルを開き、失敗したMD5チェックサムを見つけて更新し、対応するリソースのバージョンを更新します。 DKPro Core User Groupでお知らせし、build.xmlファイルを更新します。

Btw。そのチュートリアルでは、モデルを配布するためのさまざまなコンポーネントを使用するように変更されているため、これはもはや問題になることはほとんどありません。