У меня есть мультимодульный проект Maven.Некоторые модули являются зависимостями других, в то время как отдельный проект [хранилище общих ресурсов] содержит модули, которые являются зависимостями в моем основном проекте.
Мне удалось создать промежуточный модуль, который собирал бы файлы времени выполнения, которые я смогчтобы передать, но когда я пытаюсь включить один и тот же код в другой модуль, он извлекает ВСЕ исполняемые файлы jar, а не только конкретные зависимости.Код ниже.
GroupID B - это внешний проект 'commons', который мы используем в нескольких проектах.
<dependency>
<groupId>B</groupId>
<artifactId>B.artifact2</artifactId>
<version>${B.version}</version>
</dependency>
Мне удалось создать отдельный [промежуточный] модуль, используя только B.artifact2 в качествеединственная зависимость, и использовал следующий код, чтобы перетащить файлы времени выполнения в их собственную папку $ {project.build.directory} / target
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version>
<executions>
<execution>
<id>1</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<excludeGroupIds>com.google.code.findbugs,net.jcip</excludeGroupIds>
<outputDirectory>${project.build.directory}/dependency-jars</outputDirectory>
</configuration>
</execution>
, которая отлично работает [дает мне ~ 15 банок, которые мне нужны], но мы не хотим использовать промежуточный модуль.Я пытаюсь включить это в основной модуль [который является зависимостью от посредника], но у меня нет возможности выбрать только эту ОСОБЕННУЮ зависимость для получения jar-файлов времени выполнения, вместо этого она вытягивает практически все зависимости времени выполнения в папку.Этот проект выглядит следующим образом:
<dependency>
<groupId>A</groupId>
<artifactId>A.artifact</artifactId>
<version>${A.version}</version>
<classifier>dist</classifier>
<type>jar</type>
</dependency>
<dependency>
<groupId>B</groupId>
<artifactId>B.artifact1</artifactId>
<version>${B.version}</version>
</dependency>
<dependency>
<groupId>B</groupId>
<artifactId>B.artifact2</artifactId>
<version>${B.version}</version>
</dependency>
У меня есть несколько зависимостей в этом модуле, и при использовании чего-либо, как показано ниже, все равно будут извлечены ВСЕ зависимости времени выполнения [~ 40 jars]
<execution>
<id>test</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<excludeGroupIds>A,C,D,com.google.code.findbugs,net.jcip</excludeGroupIds>
<outputDirectory>${project.build.directory}/dependency-jars</outputDirectory>
</configuration>
</execution>
Если япопробуйте ограничить его B.artifact2, я получаю только артефакт от B.artifact2, а не jar / зависимости времени выполнения для него ...
Я вынужден использовать промежуточный модуль, а затем использовать его какзависимость для основного модуля?