Eclipse показывает правильные зависимости, но пакет mvn создает WAR с устаревшими зависимостями

1

Я работаю с веб-приложением A, используя maven, в eclipse, идя между использованием плагина m2e eclipse и командной строки maven.

A зависит от пользовательской библиотеки B, которая устанавливается в локальном репо. Подробности этой зависимости в pom.xml

Когда я тестирую приложение в eclipse с помощью eclipse Tomcat, все в порядке - используется самая современная версия B, и я вижу это в папке зависимостей Maven.

Но по какой-то причине, когда я перехожу в командную строку и запускаю mvn package, в результате WAR использует устаревшую версию B. Я могу сказать, потому что, когда я его развертываю на сервере приложений, его протоколирование и функциональность ломаются определенным образом который был исправлен в более новой версии B.

Есть ли способ отлаживать то, что происходит здесь? Что такое eclipse, когда этот mvn package не включается?

Определение проекта:

<groupId>org.com.web</groupId>
<artifactId>DocImgTransfer_Servlet</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>

Зависимость от lib, которая как-то получает старую версию:

<dependency>
  <groupId>DocImgTransfer</groupId>
  <artifactId>DocImgTransfer</artifactId>
  <version>1.0.0</version>
</dependency>

Так что действительно 3 вопроса:

  1. Если это просто некоторая проблема с тем, что maven захватывает неправильную версию из локального репо, есть ли способ, чтобы я мог сказать Maven, чтобы проверить версию зависимостей, которую она втягивает?

  2. mvn package -U ли mvn clean или mvn package -U помочь в этом случае?

  3. Единственный совет просто дважды проверить groupId, artifactId, версию в pom.xml?

  • 0
    Можете ли вы добавить свой pom.xml?
  • 0
    это довольно забавно, но я нахожусь у бабушки на благодарении, а исходный код находится на экземпляре EC2 в AWS, и я могу добраться до него только на моем другом ноутбуке, но у нее нет слишком большого кабеля Wi-Fi / Ethernet для моего ноутбук Итак ... пока я не могу показать pom.xml, но скоро попробую. Какие-нибудь возможные намеки на отладку в это время? просто проверить pom.xml? Можете ли вы прокомментировать мой вопрос 1. 2. или 3.? Спасибо!
Показать ещё 2 комментария
Теги:
maven
war

1 ответ

0
  1. Если это просто некоторая проблема с тем, что maven захватывает неправильную версию из локального репо, есть ли способ, чтобы я мог сказать Maven, чтобы проверить версию зависимостей, которую она втягивает?

a) Является ли ваша версия CustomatJar-1.0.0.jar, что затмение имеет в виду то же самое, что и maven, набирает или набирает старую версию maven? т.е. у вас есть код для CustomatJar, и вы просто обновляете его. v/s тот, который упаковывается в войну, действительно является более старой версией, например CustomatJar-0.0.5

i) Вы могли бы сказать, просто распакуя войну и увидев, какая версия упакована в банку.

ii) зависимость mvn: зависимость сообщит вам, какие зависимости maven командной строки думает, должны быть упакованы. больше информации

  1. Единственный совет просто дважды проверить groupId, artifactId, версию в pom.xml?

Не могли бы вы получить более старую версию CustomatJar на сервере lib? Вы уже дважды проверяли свой POM.xml... правильно?

  • 0
    Я не совсем понимаю, что вы сказали в a) - CustomJar-1.0.0 разработан мной, установлен в локальном хранилище (/home/ubuntu/.m2/repository). Две версии diff, 1.0.0 перечислены в pom.xml и работают в тесте eclipse tomcat, но mvn package похоже, в конечном итоге использует более старую версию 1.0-SNAPSHOT . Я дважды проверил pom.xml . Я попробую mvn dependency:dependency и другие предложения по этой ссылке, и я попытаюсь разархивировать полученную войну, чтобы проверить версию, упакованную внутри. Поможет ли запуск mvn clean или mvn package с -U ? Или это не связано? Спасибо ~!
  • 0
    «Пакет mvn clean или mvn с ключом -U» не имеет отношения к вашей проблеме. Если в вашем POM указан 1.0.0, то это тот, который должен быть выбран. Что вы видите, когда распаковываете?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню