Я работаю с веб-приложением 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 вопроса:
Если это просто некоторая проблема с тем, что maven захватывает неправильную версию из локального репо, есть ли способ, чтобы я мог сказать Maven, чтобы проверить версию зависимостей, которую она втягивает?
mvn package -U
ли mvn clean
или mvn package -U
помочь в этом случае?
Единственный совет просто дважды проверить groupId, artifactId, версию в pom.xml
?
a) Является ли ваша версия CustomatJar-1.0.0.jar, что затмение имеет в виду то же самое, что и maven, набирает или набирает старую версию maven? т.е. у вас есть код для CustomatJar, и вы просто обновляете его. v/s тот, который упаковывается в войну, действительно является более старой версией, например CustomatJar-0.0.5
i) Вы могли бы сказать, просто распакуя войну и увидев, какая версия упакована в банку.
ii) зависимость mvn: зависимость сообщит вам, какие зависимости maven командной строки думает, должны быть упакованы. больше информации
Не могли бы вы получить более старую версию CustomatJar на сервере lib? Вы уже дважды проверяли свой POM.xml... правильно?
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
? Или это не связано? Спасибо ~!