У нас есть проект maven, в котором мы используем некоторые артефакты, которых нет в каких-либо удаленных репозиториях. Они включены в наш проект в какой-то каталог, скажем /lib, как скомпилированные.jar файлы. Некоторые из них являются "равными" зависимостями, которые мы можем использовать из /lib с помощью scope system + systemPath, однако есть один артефакт, который должен использоваться с целью распаковки maven-dependency-plugin. Соответствующая часть pom.xml выглядит так:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>xxx.yyy.zzz</groupId>
<artifactId>ourartifact</artifactId>
<outputDirectory>${target.directory}/somedir</outputDirectory>
<includes>
files1/**,files2/**,files3/**
</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Однако это по-прежнему пытается протянуть к удаленному репозиторию и извлечь из него артефакт, что, конечно, не удастся. Можем ли мы каким-то образом добиться того, чтобы этот артефакт также был получен из /lib?
Вместо того, чтобы извлекать из /lib, а если настроить собственный Nexus/Artifactory/etc... немного сейчас, вы можете добавить банку в свой локальный репозиторий. Каждый из них должен был бы сделать это на своем собственном компьютере, но после этого он будет доступен для всех проектов, построенных на maven, на этой машине, поэтому вам не нужно будет иметь копию /lib для каждого проекта. Если вы компилируете этот банку самостоятельно, и это проект maven, вы можете выполнить "mvn install" и установить его на локальное репо. Обратите внимание, что пакет mvn не будет установлен в локальное репо.
Если это сторонняя банка, вы можете использовать mvn install: install-file для этого. Для этого следуйте инструкциям на странице https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html.
Надеюсь это поможет!
Обновление: по локальному репозиторию я могу иметь в виду иначе, чем вы упомянули в своем комментарии, - я имею в виду локальный репозиторий на каждом пользовательском компьютере, в отличие от сервера репозитория, который является локальным для вашей интрасети. Извините, если это вызвало путаницу :)