У меня есть POM-файл maven для веб-службы. Для одной из зависимостей я должен указать несколько исключений для jar-файлов, которые уже хранятся на более высоком уровне на сервере веб-приложений (доступном для всех веб-приложений, а не только для этого конкретного). Одним из примеров такого исключения является JAR, содержащий мой драйвер JDBC.
Пример (с вымышленными подробностями):
<dependency>
<groupId>mygroup</groupId>
<artifactId>myartifact</artifactId>
<version>1.0.0</version>
<exclusions>
<!--The jdbc driver causes hot-deployment issues-->
<exclusion>
<groupId>db.drivers</groupId>
<artifactId>jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
Проблема, с которой я сталкиваюсь, заключается в том, что мне нужен драйвер JDBC для моих тестов. Мои тесты в настоящее время не проходят, так как они не могут загрузить драйвер JDBC.
Как я могу настроить POM так, чтобы исключенные части были доступны для моих тестов, но не были включены в мой файл WAR?
Обновление: Я не могу вносить изменения в POM для mygroup.myartifact, так как от этого зависят многие другие проекты, и это требование исключения является уникальным для моего проекта.
Обновление 2: Кажется, я плохо сформулировал этот вопрос. Приведенное ниже решение Ларса идеально подходит для одного исключения (как показывает пример), однако в моем реальном сценарии у меня есть несколько исключений, и добавление дополнительных зависимостей для каждого кажется вонючим. Решение, которое кажется работающим, состоит в том, чтобы установить область показанной зависимости на compile , а затем создать вторую зависимость того же артефакта (mygroup.myartifact) без исключений, а область действия установить на test . Поскольку Ларс оба правильно ответили на мой плохо сформулированный вопрос, а также привели меня в направлении фактического решения, я отмечу его ответ как ответ.