Проверка на наличие поврежденного файла war после установки mvn - PullRequest
1 голос
/ 24 апреля 2010

Существует ли команда maven, которая проверит, что файл WAR действителен и не поврежден? Или есть какая-то другая программа или методика для проверки zip-файлов? Я нахожусь на Ubuntu 9.10, поэтому предпочтение отдается Linux.

Иногда я получаю поврежденный файл WAR после выполнения mvn clean и mvn install в моем проекте. Если я извлекаю файл WAR на жесткий диск, происходит ошибка, и файл не извлекается. Я полагаю, что это происходит, когда моя система находится в состоянии нехватки памяти, потому что это происходит только тогда, когда используется много памяти. После перезагрузки выполнение mvn install всегда дает действительный файл WAR.

Поскольку это случается нечасто, я обычно не проверяю файл, распаковывая его. Я передаю 50-мегабайтный файл war на свой сервер, а затем перезапускаю Jetty, используя его в качестве корневого веб-приложения. Но когда файл поврежден, я получаю ошибку java.util.zip.ZipException: invalid block type.

Так что я ищу быстрый способ проверить файл, как только mvn-установка будет завершена. Есть ли команда Maven, чтобы сделать это? Есть еще идеи?

Ответы [ 3 ]

3 голосов
/ 25 апреля 2010

Возможно, вы повреждены из-за PLXCOMP-149 . Если вы отключите включенную версию plexus-io, которая поставляется с плагином war, и замените ее на недавно выпущенную версию 1.0, ваши проблемы могут просто исчезнуть.

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

<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-io</artifactId>
<version>1.0</version>

К плагину вашего плагина войны .

1 голос
/ 24 апреля 2010

Вы можете использовать для этого плагин зависимостей . Я бы также подумал о реализации интеграционного теста (начните войну в контейнере сервлетов и сделайте несколько тестов на дым).

0 голосов
/ 24 апреля 2010

Вы можете попытаться добавить шаг, который вызывает плагин antrun для выполнения <unzip> выходной WAR-файла во временном файле.

...