【问题标题】:m2Eclips plugin: Resolve Workspace Artifacts - is it a good practicem2Eclips 插件:解决工作区工件 - 这是一个好习惯吗
【发布时间】:2020-03-03 21:35:33
【问题描述】:

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

我想了解...
1. 如果这个OK(Maven项目定义,它要求我们启用“Resolve Workspace Artifacts”)?
2. 这个问题会不会是由于 Maven 项目依赖的错误/错误设计造成的?
3. 如果我打算进入 CI-CD 阶段,那么保持现状会有什么问题吗?

这是一个 Spring Boot 网络项目

【问题讨论】:

  • 问题是:需要工作区解析的项目是否使用其他作为eclipse项目导入的项目,这些项目不是多模块的一部分?
  • 我的项目不依赖于 Eclipse 项目,但它依赖于我的项目本身(多模式项目)的少数几个。多模式项目是最终产品。
  • 听起来您的项目是否应该组合成一个多模块构建以将它们归于一个保护伞。这使得在此类项目上导入和开发变得更加容易,并且它将在单个 git 存储库中进行版本化...

标签: java eclipse maven spring-boot m2eclipse


【解决方案1】:
  1. 理想情况下应该避免它,但如果您同时开发工作区中的多个项目,它会有所帮助并且可能更快,但无论出于何种原因,都不能在可解析的 repo 中使用installed。但实际上,您可以在这些依赖项上运行 mvn install 至少将它们放入您的本地存储库。虽然我可以看到当你只是在搞乱代码并想要快速迭代时,这可能是一个“步骤太多”(另一方面,你为什么要进行完整的 maven 构建)。

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

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

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

【讨论】:

  • 感谢您的回复。 “解决工作区工件”是 IDE 中的一个功能,还是我们在纯 maven 命令中具有等效功能?我的猜测是 maven 没有这个功能。如果这个功能在 maven 中不可用,那么我的猜测是在 CI/CD 阶段我们可能会遇到问题
  • 不,Maven本身没有这个特性,它是Eclipse m2插件的一个特性。 CI/CD 服务器甚至没有本地工作空间的概念。
猜你喜欢
  • 2011-07-17
  • 1970-01-01
  • 1970-01-01
  • 2010-09-11
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多