【发布时间】:2012-06-27 15:30:40
【问题描述】:
我想创建一个 Maven 程序集,其中包含工件的传递依赖项,但实际上不包括工件本身。我试图从程序集中排除工件,但结果不包括它的依赖项。
ArtifactA 有 DependencyA、DependencyB
Assembly 应包含 DependencyA、DependencyB(不含 ArtifactA)
而且我更愿意这样做,而不必明确指定要包含在程序集中的依赖项,因为这将通过具有许多依赖项的多个项目来完成。
谢谢!
【问题讨论】:
-
你能把程序集的目标改成在构建 jar 之前吗?
-
这感觉有点绕圈子/反直觉。如果 ArtifactA 有一个版本可以消除对 A 的依赖怎么办?你的项目会中断吗?如果你依赖 A 和 B,为什么不直接把它们放在你的 POM 中呢?
-
很抱歉没有提供更多上下文。我正在迁移我们的 Web 应用程序以使用 JBoss AS 7,它现在有一个模块概念,用于将 jar 文件和其他文件放在类路径上。我正在尝试创建一个 Maven 项目,该项目将构建 JBoss 模块以包含我们的 API jar 的依赖项,因此它的所有依赖项都不会包含在使用它的每个战争中。
-
我试图避免比我已经不得不做的更彻底的改变,并且不能将 API jar 本身放在 JBoss 模块文件夹下,因为它被其他几个第三方应用程序使用不依赖于这些依赖项。只有战争文件需要这些依赖项,我将它们提供给 JBoss。是的,我意识到这是一场维护噩梦,但我在分散的团队中进行了更改,以便转向更合理的应用程序布局。
-
这听起来像是“提供”范围的依赖项。这让我感到困惑为什么你使用 maven-assembly ?这个项目是 EAR 吗?