Моро, вы написали в комментарии, что X имеет следующую объявленную зависимость:
<dependency>
<groupId>Y</groupId>
<artifactId>Y</artifactId>
<scope>provided</scope>
<version>1.0</version>
</dependency>
Первая точка. Вы используете «фиксированную» версию здесь (в отличие от «SNAPSHOT
»). При использовании SNAPSHOT
maven будет автоматически получать последние SNAPSHOT
каждый раз, когда вы строите. С другой стороны, когда вы используете 1.0, когда maven скачал этот артефакт, он никогда не пытается получить новый 1.0. Таким образом, вы должны увеличить версию Y или, если Y находится в стадии активной разработки (улучшения, исправления ошибок и т. Д.), Вы действительно должны использовать SNAPSHOT
.
Для получения дополнительной информации о SNAPSHOT
обратитесь к главе 9.3.1.2. SNAPSHOT Версии книги Сонатипа:
Зачем вам это использовать? СНАПШОТ
версии используются для проектов под
активное развитие. Если ваш проект
зависит от программного компонента, который
находится в стадии активной разработки, вы можете
зависит от релиза SNAPSHOT, и
Maven будет периодически пытаться
загрузить последний снимок с
хранилище при запуске сборки.
Точно так же, если следующий выпуск вашего
Система будет иметь версию
«1.4», ваш проект будет иметь
версия "1.4-SNAPSHOT" пока не было
официально выпущен.
Второй пункт. Вы используете область действия provided
. Согласно главе
9.4.1. Область зависимостей :
provided
зависимости используются, когда
Вы ожидаете, что JDK или контейнер
предоставить им. Например, если вы были
разрабатывая веб-приложение, вы
потребуется доступный Servlet API
на пути к классам для компиляции
сервлет, но ты бы не хотел
включить API сервлета в
упакованная война; JAR сервлетного API
предоставляется вашим сервером приложений или
Контейнер сервлетов. provided
зависимости доступны на
classpath компиляции (не время выполнения).
Они не являются переходными и не являются
упаковывают.
Это действительно то, что вы хотите? Как вы развертываете X и Y на JBoss? Разве вы не должны использовать область по умолчанию compile
?