java - m2Eclips 插件:解决工作区工件 - 这是一个好习惯吗
问题描述
您好,我正在开发一个 Maven 项目,该项目要求我在执行 Maven 构建操作时启用“解决工作区工件”。没有它,我会因为某些依赖项没有解决而导致构建失败。
从这个链接我了解“解决工作区工件”的作用。提供背景信息:我刚开始,我的本地 m2 存储库中没有任何内容。我正在从 Git Lab 克隆一个项目,并在运行“mvn clean install”时启用“Resovle Workspace Artifacts”。
这是一个多模块的 Maven 项目。
我想了解...
1. 如果这行(Maven 项目定义为要求我们启用“解决工作区工件”)?
2. 这个问题可能是由于 Maven 项目依赖项的错误/错误设计引起的吗?
3. 如果我计划进入 CI-CD 阶段,如果保持原样,会有什么问题吗?
这是一个 Spring Boot Web 项目
解决方案
理想情况下应该避免它,但如果您同时开发工作区中的多个项目,但由于某种原因无法
install
在可解析的存储库中编辑,它会有所帮助并且可能更快。但实际上,您可以mvn install
在这些依赖项上运行,至少将它们放入您的本地存储库。尽管我可以看到当您只是在弄乱代码并想要快速迭代时,这可能是一个“步骤太多”(另一方面,您为什么要进行完整的 Maven 构建)。也许由于某种原因,您还没有推送/安装您自己的另一个项目,但有问题的项目取决于。如果它不在本地或远程可公开解析的 repo 中,没有“解决工作区工件”,maven 就无法解决它。但是,是的,这可能是您的依赖关系树的问题 - 没有您的 pom.xml 很难评估。
只要 CI/CD 服务器可以获取缺少的依赖项,就没有问题。
如果缺少的依赖项托管在私有存储库中,可能的解决方案是<repository>
在您的 pom.xml 中添加一个条目。
推荐阅读
- python - 将列表中的每一行与前一行进行比较(每行多个数字) - python
- python - 如何使用熊猫数据框预测值?
- java - Angular 6,HttpClient,带有后端 Spring Boot!我的标头没有到达后端
- rust - 在 Piston2d 中呈现文本的函数中的 GlyphCache 类型是什么
- firebase - Firebase 远程配置与 A/B 测试功能
- reactjs - 在 ComponentDidMount 之前响应访问状态
- python - Python - 在文本文件中定位重复的单词
- python - 在 python 的 url 中更新/添加用户名
- c# - UWP 绑定到 FontIcon 的可见性属性
- javascript - 页面上“层”中的两个语义侧边栏?