首页 > 解决方案 > m2Eclips 插件:解决工作区工件 - 这是一个好习惯吗

问题描述

您好,我正在开发一个 Maven 项目,该项目要求我在执行 Maven 构建操作时启用“解决工作区工件”。没有它,我会因为某些依赖项没有解决而导致构建失败。
从这个链接我了解“解决工作区工件”的作用。提供背景信息:我刚开始,我的本地 m2 存储库中没有任何内容。我正在从 Git Lab 克隆一个项目,并在运行“mvn clean install”时启用“Resovle Workspace Artifacts”。
这是一个多模块的 Maven 项目。

我想了解...
1. 如果这行(Maven 项目定义为要求我们启用“解决工作区工件”)?
2. 这个问题可能是由于 Maven 项目依赖项的错误/错误设计引起的吗?
3. 如果我计划进入 CI-CD 阶段,如果保持原样,会有什么问题吗?

这是一个 Spring Boot Web 项目

标签: javaeclipsemavenspring-bootm2eclipse

解决方案


  1. 理想情况下应该避免它,但如果您同时开发工作区中的多个项目,但由于某种原因无法install在可解析的存储库中编辑,它会有所帮助并且可能更快。但实际上,您可以mvn install在这些依赖项上运行,至少将它们放入您的本地存储库。尽管我可以看到当您只是在弄乱代码并想要快速迭代时,这可能是一个“步骤太多”(另一方面,您为什么要进行完整的 Maven 构建)。

  2. 也许由于某种原因,您还没有推送/安装您自己的另一个项目,但有问题的项目取决于。如果它不在本地或远程可公开解析的 repo 中,没有“解决工作区工件”,maven 就无法解决它。但是,是的,这可能是您的依赖关系树的问题 - 没有您的 pom.xml 很难评估。

  3. 只要 CI/CD 服务器可以获取缺少的依赖项,就没有问题。

如果缺少的依赖项托管在私有存储库中,可能的解决方案是<repository>在您的 pom.xml 中添加一个条目。


推荐阅读