Как исключить тестовые зависимости из затененной банки maven?

Я использую плагин maven-shade и хочу исключить не только свой тестовый код, но и мои тестовые зависимости в затененной банке. Я понимаю, что могу специально исключить определенные артефакты (например, junit), но это хорошая работа, и, скорее всего, есть вероятность ошибки.

Я устанавливаю для minimizeJar значение true, но все еще вижу, что мои зависимости Junit и Mockito отображаются. Неужели нет способа исключить все зависимости с областью тестирования через конфигурацию?


person AHungerArtist    schedule 09.05.2013    source источник
comment
Какую версию плагина Shade вы используете? А как выглядит твой помпон? Я создал тестовый проект с Junit в качестве области тестирования, и плагин тени не упаковал его. возможно, что еще одна библиотека, не входящая в область тестирования, имеет Junit в качестве зависимости?   -  person mszalbach    schedule 10.05.2013
comment
@mszalbach Это была комбинация двух вещей: во-первых, была тестовая зависимость, которая была ошибочно объявлена ​​​​как компилируемая. Во-вторых, была тестовая зависимость, которая включала файлы .java в свою банку, и я не заметил расширения, когда смотрел на затененную банку. Итак, вы правы, файлы тестовых зависимостей .class не упаковываются.   -  person AHungerArtist    schedule 10.05.2013


Ответы (1)


Убедитесь, что ваши тестовые зависимости в области test:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
...

Чтобы проверить, использует ли ваша установка зависимостей

mvn dependency:tree
person rzymek    schedule 10.05.2013
comment
@ryzmek Это была комбинация двух вещей: во-первых, была тестовая зависимость, которая была ошибочно объявлена ​​​​как компилируемая. Во-вторых, была тестовая зависимость, которая включала файлы .java в свою банку, и я не заметил расширения, когда смотрел на заштрихованную банку. - person AHungerArtist; 10.05.2013
comment
Я думал, что это может быть так. Вот почему я предложил dependency:tree. Это действительно полезный инструмент - person rzymek; 10.05.2013