在打包的JAR中包含本地依赖项

时间:2016-09-05 18:35:55

标签: java maven build dependencies

我有一个带有一些第三方依赖项的maven项目,稍后会自动提供给我的应用程序,因此可能不会包含在我的JAR中。

此外,我还有一些其他依赖项,它们是我自己的库,只能在存储库之外的本地使用。所以我创建了一个本地回购:

<!-- local repo -->
<repository>
    <id>local-maven-repo</id>
    <url>file:///${project.basedir}/lib</url>
</repository>

然后像往常一样添加了依赖项:

<dependency>
    <groupId>de.cydhra</groupId>
    <artifactId>ABCommands</artifactId>
    <version>1.0-SNAPSHOT</version>
    <scope>compile</scope>
</dependency>

当我正确记住maven规范时,依赖项现在应该包含在我的JAR中,因为范围是“compile”(我也尝试过运行时:相同的结果)。但是在运行“mvn package”时,完全忽略了依赖关系。

再说一遍:我不想知道如何将依赖项包含到我的项目中,但是如何将它们编译成完成的应用程序。

我目前使用maven-compiler插件生成我的jar。在谷歌搜索时,我听说过maven jar插件,它有一个“包括类路径”的选项,它将我的依赖项写入清单,没有进一步,非常感谢。此外,maven程序集插件可以生成一个jar-with-dependencies,它包含我的所有依赖项,以及应该提供的依赖项。那我错过了什么?

1 个答案:

答案 0 :(得分:0)

使用maven的shade plugin 当你编译你的项目时,
 jar将在其中包含项目的依赖项