Рассмотрим следующую ситуацию.Как сообщить 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
?
Можете ли вы не изменить его по-другому? 'foo: bar: 1.0' и' foo: bar: 1.0-java5'? Или у вас нет контроля над этим? –
У вас могут быть две разные зависимости в профиле, но это, как правило, не очень хорошая идея. Я бы пошел простым путем и предоставил отдельный POM для Java 5, тем более, что вы можете забыть об этом и никогда не трогать его снова :) – eckes
Вы можете объявить foo-bar-java5 явно в области. Тогда он не будет включен в список баннеров времени выполнения. –