Итак, у меня есть многомодульный проект, в котором я создаю затененную банку для добавления в проекты не maven, а также для поддержки других проектов maven. У нас есть несколько наших собственных библиотек в качестве зависимостей. Однако объединение их в затененный jar вызывает проблемы в приложении non-maven, которое уже имеет эти зависимости (и его нельзя просто удалить, чтобы полагаться на затененную версию). Я пытался создать профиль в pom моего проекта, чтобы исключить эти зависимости из затененного фляги, но maven, похоже, это не волнует.
Я не могу опубликовать весь pom, но, по сути, каждый модульзависит от других модулей, и в конце у нас есть последний модуль, который просто объединяет все вместе, где находится мой профиль. Я добавил список зависимостей, в которых есть исключения для артефактов, которые я не хочу добавлять в затененный jar. Я использовал зависимости: дерево, чтобы добавить каждый модуль, имеющий транзитивную зависимость, в исключение и добавил запись зависимости. для него, наряду с его собственным исключением, я добавил artifactSet в конфигурацию плагина shade, чтобы исключить эти артефакты, и добавил плагин forcece для сбоя сборки, если этот артефакт существует.
Артефакт Iне хочу, чтобы добавление все еще добавлялось в затененную банку.
<dependencies>
<dependency>
<groupId>my.group</groupId>
<artifactId>my-module</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<groupId>some.dependency</groupId>
<artifactId>i-dont-want</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
Это работает, но проблема в том, что мне нужно также иметь зависимость для модуля дальше по дереву зависимостей, которое транзитивно зависит отвышеупомянутый модуль.
Итак, когда я делаю следующее, зависимость, которую я пытаюсь исключить, в любом случае оказывается в затененной банке.
<dependencies>
<dependency>
<groupId>my.group</groupId>
<artifactId>my-module</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<groupId>some.dependency</groupId>
<artifactId>i-dont-want</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>my.group</groupId>
<artifactId>dependes-on-my-module</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
Если я пытаюсь добавить исключения вмоя конфигурация оттенка, как показано ниже, тоже, кажется, не имеет значения. куча вещей из-за переполнения стека, которые, похоже, не помогли (даже пометив вещи, как указано в моем профиле, или добавив все зависимости, которые имеют транзитивную зависимость, к артефакту, который я пытаюсь удалить без удачи).
Есть ли способ заставить эти переходные зависимости не быть добавлены в мою заштрихованную банку? Я просто хочу, чтобы их не добавляли;в этот момент я попробую что-нибудь ... заранее спасибо за помощь.