2015-05-01 4 views
4

Рассмотрим следующую ситуацию.Как сообщить maven, что артефакт был переименован?

У меня есть проект Java 1.8, который зависит от артефакта java 8 под названием foo-bar и артефакта java 5 под названием baz-qux. baz-qux также зависит от foo-bar. Но он использует специальную стримированную сборку java 5 под названием foo-bar-java5. Таким образом, включив в мой проект baz-qux, я транзитивно ввожу foo-bar-java5. В конце концов у меня есть нежелательное состояние, когда у меня теперь есть foo-bar и foo-bar-java5. По-видимому, нет никакого способа сделать глобальное исключение. Поэтому я не могу просто исключить foo-bar-java5. Вместо этого я должен загромождать свою суматоху и исключать ее повсюду, когда она будет проходить транзитно.

С учетом сказанного, есть ли способ указать, что foo-bar предоставляет foo-bar-java5? Или это единственный вариант, чтобы по-настоящему исключить foo-bar-java5?

+0

Можете ли вы не изменить его по-другому? 'foo: bar: 1.0' и' foo: bar: 1.0-java5'? Или у вас нет контроля над этим? –

+0

У вас могут быть две разные зависимости в профиле, но это, как правило, не очень хорошая идея. Я бы пошел простым путем и предоставил отдельный POM для Java 5, тем более, что вы можете забыть об этом и никогда не трогать его снова :) – eckes

+0

Вы можете объявить foo-bar-java5 явно в области . Тогда он не будет включен в список баннеров времени выполнения. –

ответ

1

Вот ответ из другого вопроса, который может работать для вас:

https://stackoverflow.com/a/9623517/2879838

В основном, явно перечислить Foo-бар-java5 как зависимость в проекте и перечислить его, как это предусмотрено. Это покажет maven, чтобы не поставить эту банку в архив во время сборки. Это должно быть намного менее беспорядочно, чем исключать его повсюду.

+0

afaik, mvn eclipse: eclipse будет по-прежнему приводить к предоставленной зависимости. –

+0

Правильно, ваша IDE будет тянуть в lib как зависимость, но сборка архива исключает lib. Если вам нужна ваша IDE для того, чтобы lib не был снесен в ваш проект, тогда, да, я бы сказал, вам нужно явно исключить его всюду в вашем pom.xml –

Смежные вопросы