LINUX.ORG.RU

Чем проверить валидность 100500 jar файлов?

 , , ,


0

2

Есть проект, который достался по наследству, внезапно выяснил что пара либ пересобраны. Старожил грит, что там что-то фиксили, но точно вспомнить что и в каких ещё либах фиксили - не может.

Собственно вопрос, есть ли какой способ без ручного написания скрипта для вытягивания помников из джарок и выкачивания всех артефактов и сравнения их чексум с оригиналами, определить какие из них были модифицированы?

Update:
Т.к. ничего вменяемого так и не нашлось написал простой скриптец, может кому пригодится

#!/bin/bash

FILES=./pom*.xml
for f in $FILES
do
  GROUP=$(xml_grep --text_only '/project/groupId' "$f" | sed -r 's|(\.)|/|g');
  ARTIFACTID=$(xml_grep --text_only '/project/artifactId' "$f");
  VERSION=$(xml_grep --text_only '/project/version' "$f");
  if [ -z "$VERSION" ]; then
    VERSION=$(xml_grep --text_only '/project/parent/version' "$f");
  fi
  
  MD5=$(wget "http://repo.maven.apache.org/maven2/$GROUP/$ARTIFACTID/$VERSION/$ARTIFACTID-$VERSION.jar.md5" -q -O -);
  
  if [ -n "$MD5" ]; then
    echo "$MD5  $ARTIFACTID-$VERSION.jar" >> md5list.tmp;
  fi
  
done

sort -u md5list.tmp > md5list;
rm md5list.tmp;

Результат работы можно дифать с выводом md5sum. Как найти и вынуть из архивчиков pom.xml и сложить их в кучу, думаю, нет смысла объяснять.

Ахтунг: для некоторых джарок в репе файл *.jar.md5 содержит не только чексумму, но и имя файлика, у меня таких было всего пара штук, поэтому пофиксил просто руками.

ПС: Нашёл еще один перебранный джарник.

★★★★★

Последнее исправление: ya-betmen (всего исправлений: 1)

Вот прям фиксили, jar пересобирали и заменяли им оригинал или эндорсили, как нормальные люди? Система управления зависимостями есть в проекте?

Я бы забил и попробовал с не измененными собрать. В лучшем случае проект не соберется. В худшем, придется гонять регрессию и ловить ошибки в рантайме.

Deleted
()
Ответ на: комментарий от Deleted

В худшем, придется гонять регрессию и ловить ошибки в рантайме.

Вот то то и оно.

ya-betmen ★★★★★
() автор топика

Решил проблему скриптом. Обновил ОП.

ya-betmen ★★★★★
() автор топика

ты какой-то фигней занимаешься, честное слово. надеюсь, что тебя уволят.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.