【问题标题】:Maven depend on project - no jar but classesMaven 依赖于项目 - 没有 jar 但有类
【发布时间】:2011-06-16 14:26:35
【问题描述】:

我有一个多模块的Maven项目A。有两个模块:B和C,其中C依赖B。

假设 C 是一个 Web 应用程序,那么默认情况下 B.jar 将包含在 C 的 WEB-INF/lib 目录中。

但不是这样,我想编译B,然后将其编译的类移动到C的目标目录。

如何在 Maven 中实现这一点?

感谢您的回答,

巴拉兹

【问题讨论】:

  • 您这样做的目的是什么?这听起来像是一个更大问题的解决方案。
  • 是的。我正在尝试 mavenize 一个 7 岁的项目。到目前为止,它使用 ant 构建 B,然后在编译 C 的同时复制一些类。
  • 所以即使 B 在 C 之前构建,声明 B 依赖于 C 也不起作用?
  • B 不能是 C 的依赖项。

标签: java maven dependencies


【解决方案1】:

如果你的模块B也是一个webapp模块,你可以通过configuring the war plugin创建一个只包含类的jar文件。然后,您可以通过将 <classifier>classes</classifier> 添加到 pom 来使 C 依赖于该 -classes 工件。

否则你可以在C被打包时使用dependency plugin to unpackB神器。

【讨论】:

  • B 不是 Web 模块,它只是一个项目,是类的集合。
  • 好的,那么我会选择“否则”的建议。
  • 看起来您的解决方案就是我需要的解决方案 :) 谢谢。我设法将 B 的类复制到 C 的目标目录,但它们仍未包含在 C.jar 中。你知道如何实现这一目标吗?执行阶段可能吗?
  • @Balázs 你应该确保它们被解压到target/classes 文件夹中,C 的打包阶段应该从那里提取它们。
  • 是的,我设法做对了,一切都像魅力一样。再次感谢!
猜你喜欢
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
相关资源
最近更新 更多