Добавление сторонней банки в затененную банку Maven без добавления ее в локальный репозиторий
Я уже нашел здесь ответ на Stack Overflow, как включить сторонний JAR-файл в проект, не устанавливая его в «локальный репозиторий»:
Могу ли я добавить jar в maven 2 buildpath без их установки?
Но когда я использую плагин Maven Shade для создания JAR, который также включает в себя все зависимости проекта, сторонний JAR не включается автоматически.
Как я могу заставить плагин Maven Shade добавить такой сторонний JAR в затененный JAR?
Согласно полученному ответу, я заставил это работать. Что я сделал, добавил этот фрагмент в начало моего pom.xml:
<repositories>
<repository>
<id>repo</id>
<url>file://${basedir}/repo</url>
</repository>
</repositories>
Затем добавил зависимость для моего проекта, также в pom.xml:
<dependencies>
<dependency>
<groupId>dummy</groupId>
<artifactId>dummy</artifactId>
<version>0.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
А затем запустил командную строку, чтобы добавить пакет в 'repo':
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file
-Dfile=<my-jar>.jar -DgroupId=dummy -DartifactId=dummy
-Dversion=0.0.0 -Dpackaging=jar -DlocalRepositoryPath=`pwd`/repo/
(Не уверен, что путь репо должен быть полным, но он не хотел рисковать.)
Содержимое подкаталога репо теперь:
repo/dummy/dummy/0.0.0/dummy-0.0.0.jar
repo/dummy/dummy/0.0.0/dummy-0.0.0.pom
repo/dummy/dummy/maven-metadata-local.xml
Теперь я могу проверить это для контроля версий, и у меня нет локальных или удаленных зависимостей.