获取已部署的jar-with-dependencies而没有传递依赖项

时间:2012-08-21 19:41:12

标签: maven-assembly-plugin maven-dependency-plugin

我正在使用maven-assembly-plugin创建一个包含运行我的应用程序所需的所有依赖项的jar文件。程序集的配置使用指向我的自定义程序集的descriptorRef。

当我查看maven存储库时,我会看到jar,pom和jar-with-dependencies,这是练习的重点。

当我使用maven-dependency-plugin拉取jar-with-dependencies时:2.4:get,除了将jar-with-dependencies复制到dest之外,它还将传递依赖关系拉到我的本地maven存储库。

我期望看到的行为,因为jar-with-dependencies已经嵌入了所有内容,只有那个jar文件才会被检索。换句话说,我期望在调用依赖项时看到的行为:get with -Dtransitive = false。

我需要传递标志的事实是否表明某些内容不正确或缺失,可能是在pom或汇编描述符中?我应该在pom或程序集中做一些不同的事情,以便jar-with-dependencies有一个空的依赖列表吗?

1 个答案:

答案 0 :(得分:1)

maven-dependency-plugin没有(也不能)知道你的jar依赖包含所有依赖项。它只是查看工件的POM文件并下载JAR及其依赖项,除非您指定-Dtransitive=false

这正是get goal的文档所说的:

  

从指定的远程存储库下载单个工件传递

<强>更新

您的设置没有任何错误或缺失,但是不可能让maven意识到您的JAR已经包含所有依赖项。从Maven的角度来看,jar-with-dependencies就像maven存储库中的任何其他JAR文件一样。 Maven对您的JAR文件的内容一无所知。