Ter um jar de terceiros incluído no jar sombreado do Maven sem adicioná-lo ao repositório local
Eu já encontrei uma resposta aqui no Stack Overflow como incluir um JAR de terceiros em um projeto sem instalá-lo em um "repositório local":
Posso adicionar jarros ao maven 2 build classpath sem instalá-los?
Mas, quando eu uso o Maven Shade Plugin para criar um JAR que também inclui todas as dependências do projeto, o JAR de terceiros não é incluído automaticamente.
Como faço para o Maven Shade Plugin adicionar um JAR de terceiros ao JAR sombreado?
De acordo com a resposta obtida, eu fiz funcionar. O que fiz foi adicionar este trecho ao início do meu pom.xml:
<repositories>
<repository>
<id>repo</id>
<url>file://${basedir}/repo</url>
</repository>
</repositories>
Em seguida, adicionei uma dependência para o meu projeto, também no pom.xml:
<dependencies>
<dependency>
<groupId>dummy</groupId>
<artifactId>dummy</artifactId>
<version>0.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
E, em seguida, executou uma linha de comando para adicionar um pacote ao '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/
(Não tenho certeza se o caminho do repositório precisa ser um caminho completo, mas não quis arriscar.)
O conteúdo do subdiretório repo é agora:
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
Agora posso verificar isso no controle de versão e não tenho dependências locais ou remotas.