2

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

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

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

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

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

4

1 回答 1

1

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

这正是get目标文档所说的:

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

更新:

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

于 2012-08-21T21:28:31.150 回答