【发布时间】:2019-04-23 01:31:04
【问题描述】:
我的项目 A 使用某个 3rd 方存储库并依赖于该存储库中的一些 jar。
我用依赖项(一个胖 Jar)编译项目 A 并将其上传到我的工件。 现在我开始项目 B,但我不希望他拥有那个 3rd 方 repo,因为我需要的所有类都已经在我在工件中的那个胖罐子里了。 所以我只在项目 B 中添加项目 A 的依赖项(项目 B 有我的工件作为仓库)
当我在我的 jenkins 服务器上构建项目 B 时,一切顺利,但是当我尝试在我的本地计算机上编译项目 B(可以访问工件)时,我失败了,因为他试图下载项目 A 的一些依赖项而不是拥有第 3 方存储库。
我很清楚这不是最好的工作方式,但我不明白为什么在我的本地环境中我得到错误而 jenkins 没有?
我认为如果类存在 maven 不会尝试从外部存储库下载依赖项,并且在我的情况下这些类存在,如果我进入本地 .m2 存储库并查看项目作为 jar,我可以看到存在类。
为什么 jenkins 构建成功而我没有?
【问题讨论】:
-
让我提一下,使用 fat jar 作为依赖项通常是个坏主意。更重要的是,如果 fat jar 的 pom.xml 仍然包含所有依赖项,那么 Maven 将尝试下载它们,从而有效地复制您加载的类
标签: maven jenkins dependencies repository