-1

У меня есть проект maven с использованием плагина сборки, который включает, помимо прочего, зависимости проекта.Размер зависимой версии плагина Maven Assembly

Один из зависимостей объявлено в П как:
<dependency> <groupId>com.oracle.sqlj</groupId> <artifactId>runtime12</artifactId> <version>11.1.0.0.0</version> <scope>compile</scope> </dependency>

П для проекта также имеет родительский POM, который должен быть включен, но я не могу изменить. Там, есть:
<dependency> <groupId>com.oracle.sqlj</groupId> <artifactId>runtime12</artifactId> <version>10.1.0.2.0</version> <scope>compile</scope> </dependency>

объявление Зависимости в XML для сборки плагина гласит: <dependencySets> <dependencySet> <outputDirectory>etc/lib</outputDirectory> <useProjectArtifact>false</useProjectArtifact> <!-- INCLUDE ALL DEPENDENCIES --> <includes></includes> </dependencySet> </dependencySets>

Когда этап сборки запускается, версия 10.1.0.2.0 в зависимости упакован, а не 11.1.0.0.0, который я бы предпочел переопределить, поскольку он фактически выполняется для этапа компиляции до сборки.

Я сделал ошибку здесь? Или, если нет, можно ли каким-либо образом заставить сцену сборки предпочесть зависшие в дочернем помпе, а не с родителем? Я googled, но до сих пор приходят пустые ...

ответ

0

Я думаю, что правильный путь должен состоять в том, чтобы изменить родительский объект, чтобы использовать тег dependencyManagement вместо зависимости и позволить дочернему проекту использовать эту зависимость или задавать друг друга.

Но, по-видимому, вы не можете изменить родителя.

Итак, вы должны изменить конфигурацию дескриптора сборки dependencySet. Используйте тег excludes, чтобы исключить нежелательный артефакт.

Вы можете прочитать руководство ссылку для сборки дескриптора здесь: https://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

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

  • Нет связанных вопросов^_^