У меня есть файл POM maven для веб-службы. Для одной из зависимостей я должен указать несколько исключений для файлов jar, которые уже хранятся на более высоком уровне на сервере веб-приложений (доступны для всех веб-приложений, а не только для этого конкретного). Одним из примеров такого исключения является JAR, содержащий мой драйвер JDBC.Исключение зависимостей Maven для файла War, но включение для тестов
Пример (с вымышленными деталями):
<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: Кажется, я плохо сформулировал этот вопрос. Решение Lars ниже идеально подходит для одного исключения (как показывает пример), однако в моем реальном сценарии у меня есть несколько исключений, и добавление дополнительных зависимостей для каждого кажется вонючим. Решение, которое, похоже, работает, заключается в том, чтобы установить область видимой зависимости в , компилировать, а затем создать вторую зависимость того же артефакта (mygroup.myartifact) без исключений, а область действия установлена на test. Поскольку Ларс правильно ответил на мой плохо сформулированный вопрос, а также привел меня в направлении фактического решения, я отвечу на его ответ как ответ.
Ах, не знал, что вы можете перегружать подобные зависимости. Тогда я тоже чему-то научился, хорошо. :) – 2008-09-25 12:01:24