Maven строить войну некоторые классы не включены - PullRequest
0 голосов
/ 05 декабря 2018

При создании веб-приложения maven с использованием mvn install или mvn compile war:war на двух разных компьютерах получаемые в результате файлы WAR имеют разницу в 20 МБ, а время их сборки составляет полторы минуты (30 с против 2 минут)

При проверкеФайлы war, использующие WinRAR. Я заметил, что меньший WAR не содержит папок WEB-INF \ classes \ WEB-INF и WEB-INF \ classes \ resource.

Вся кодовая база одинакова.POM.xml содержит maven-compiler-plugin, веб-приложение и модульные тесты хорошо работают в обоих приложениях с той разницей, что меньшая WAR, похоже, не содержит файлов свойств для языковой локализации.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Различия между двумя компьютерами могут заключаться в настройках maven, расположенных в ~ / .m2 / settings.xml

, рассмотрите возможность добавления оболочки maven в ваш проект @see: https://www.baeldung.com/maven-wrapper

0 голосов
/ 05 декабря 2018

Скорее всего, одна из машин хранит поврежденные артефакты в локальном хранилище maven или указывает на зеркальный сервер с поврежденными артефактами.Если артефакт имеет недопустимый pom.xml или родительский pom.xml не может быть разрешен, вы получите предупреждение:

Недопустимый POM для, транзитивные зависимости (если таковые имеются) будут недоступны

Проверьте вывод консоли и убедитесь, что таких предупреждений нет.См. этот ответ для дальнейшего чтения .

Также может быть, что используемая версия Maven отличается на обеих машинах.Это может привести к запуску Maven War Plugin в разных версиях, одна из которых может быть подвержена ошибке.Убедитесь, что в обеих сборках используется одна и та же версия и конфигурация Maven, например, с Maven Wrapper .

Существует также вероятность того, что у вас есть нестандартная сборка с модулями, привязанными вручную к фазам, например, Maven AssemblyПлагин привязан к test фазе.Убедитесь, что обе машины строят артефакт с помощью одной и той же команды.

Выше в общих чертах показано, почему для получения воспроизводимых сборок необходим сервер CI.

...