在 Maven 着色 jar 中包含第三方 jar,而无需将其添加到本地存储库
我已经在Stack Overflow上找到了答案,如何在项目中包含第三方JAR而无需将其安装到“本地存储库”:
我可以在不安装的情况下将 jar 添加到 maven 2 构建类路径中吗?
但是,当我使用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>
然后运行命令行将包添加到“存储库”:
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
现在,我可以将其签入到版本控制中,并且没有本地或远程依赖项。