带有模块的项目中的 Maven 依赖解析

发布于 2024-10-03 17:47:13 字数 451 浏览 1 评论 0原文

我的 Maven 项目的结构如下:

project
  moduleA
  moduleB
  moduleC

moduleB 和 moduleC 依赖于 moduleA。如果我执行“mvn install”命令,maven 在我的本地存储库中安装 moduleA 和 moduleB,然后 maven 尝试安装 modeleC 但没有成功,首先它会尝试在所有已知的 maven 远程存储库中查找工件 moduleA,然后,我'我收到一条消息,指出 moduleA 工件丢失。它是如此磨损,因为有时它工作正常,有时则不行。因为这个问题我浪费了很多时间。

工件 moduleA 和 moduleB 位于我的本地存储库中。

我在 Windows 7 pro 下的 64 位机器上使用 maven 2.2.1。

有谁知道问题是什么?

谢谢,

凯文

my maven project is stuctured as:

project
  moduleA
  moduleB
  moduleC

The moduleB and moduleC are dependend on moduleA. if I execute the 'mvn install' command maven installs moduleA and moduleB in my local repository after that maven tries to install the modeleC but without success, first it tries to find the artifact moduleA in all known maven remote repositories and after that, I'm getting a message that the moduleA artefact is missing. Its so weard because sometimes it works fine and sometimes not. Because of this issue I wasted a lot of time.

The artifact moduleA and moduleB are in my local repository.

I'm using maven 2.2.1 on a 64Bit machine under windows 7 pro.

Does anyone know what the problem is?

Thanks,

Kevin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苍暮颜 2024-10-10 17:47:13

如果您使用 mvn install,该命令会将工件放入您的本地存储库中。通常位于您的主目录中的 .m2/repository 下,除非您另有指定。如果 moduleC 正在尝试构建(使用 mvn install)并且依赖于 moduleA,则 moduleA 应该在 moduleC 时从本地存储库中提取。如果 moduleC 正在远程查找 moduleA,则 moduleA 永远不会安装到本地存储库中。

检查 moduleC 的 pom 文件。确保 moduleC 的 pom.xml 中 moduleA 的依赖信息与 moduleA 的 pom.xml 中指定的 groupId、artifactId 和版本相匹配。如果匹配,请确保 moduleA 确实正在生成工件。它应该位于 moduleA 下的目标目录中。如果 moduleA 不是 jar,请确保 moduleA 的 pom.xml 中列出了 type 属性,并且 moduleC 的 pom.xml 中列出了依赖项的类型。

如果上述方法不能得到一致的解决方案,您可能需要编辑问题并添加一些 pom.xml 详细信息。

If you use mvn install, that command will put the artifact in your local repository. Usually in your home directory under .m2/repository unless you have specified differently. If moduleC is trying build (with mvn install) and depends on moduleA, moduleA should be pulling from your local repository when moduleC. If moduleC is looking remotely for moduleA then moduleA never got installed into your local repository.

Check the pom file for moduleC. Make sure the dependency information in moduleC's pom.xml for moduleA matches the groupId, artifactId, and version specified in moduleA's pom.xml. If that matches, make sure moduleA is really producing an artifact. It should be in the target directory under moduleA. If moduleA is not a jar make sure you have the type attribute listed in the pom.xml for moduleA and that moduleC's pom.xml has that type listed for the dependency.

If the above doesn't lead to a consistent resolution, you're may want to edit your question adding some of the pom.xml details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文