Как мне выполнить md5sum на взорванном ухе?
Большинство артефактов приложений на моем рабочем месте - это невзорвавшиеся файлы уха или войны. Поскольку это простые файлы, для сравнения легко выполнить md5sum для артефактов. Небольшое подмножество приложений развернуто как взорванные уши. Как каталоги, я не могу выполнить простой md5sum против него. Я ищу альтернативу - либо более гибкую утилиту, которая будет выполнять хеширование против артефактов разных типов файлов, либо другой техники.
У меня была мысль сжать каталог ear или war на лету (как временный файл или как канал) и запустить md5sum против этого временного артефакта. Это было бы моим предпочтением, но я не совсем уверен, как это сделать. Любые предложения или рекомендации будут с благодарностью.
2 ответа
Я бы предложил использовать класс MessageDigest для создания вашего хэша... обратите внимание, что различные update()
методы этого класса просто берут byte
или же byte[]
или же ByteBuffer
и не полагайтесь на то, откуда берутся эти байты.
Так что, по крайней мере, я бы подумал сделать - в зависимости от эффективности и того, как быстро этот процесс будет выполняться - это перебрать ваши файлы и update()
Ваша сумма MD5 с содержанием каждого файла по очереди. Продолжайте обновление до конца и завершите его финальным digest()
чтобы получить конечный результат.
Вам нужно быть абсолютно уверенным, что вы каждый раз просматриваете файлы в одном и том же порядке, поскольку очевидно, что другой порядок приведет к другому хешу.
Одной из идей было бы сжать каталог до канала, а затем выполнить и md5sum для канала:
jar -c <directory> | md5sum