java - 如何不从 settings.xml 服务器中提取模块(依赖项)?
问题描述
我有以下项目包结构。
parent
|- module1
|- module2
|- module3
我能够将 module3 作为依赖项包含在 module1 和 module2 的 pom.xml 文件中。这使我可以访问 module3 中的所有依赖项和代码。
<dependency>
<groupId>my.group</groupId>
<artifactId>module3</artifactId>
<version>1.0.0</version>
</dependency>
但是,当我dependency:tree
在 module1 或 module2 的 pom 文件上运行 maven 命令时,maven 将尝试搜索<servers>
我的 settings.xml 文件中列出的某些内容,以便尝试下载 module3 作为工件。module3 目前没有部署到任何地方<server>
,因此 maven 命令失败并出现以下错误
[ERROR] Failed to execute goal on project module1: Could not resolve dependencies for project my.group:module1:jar:1.0.0-SNAPSHOT: Failed to collect dependencies at my.group:module3:jar:1.0.0-SNAPSHOT: Failed to read artifact descriptor for my.group:module3:jar:1.0.0-SNAPSHOT: Could not transfer artifact my.group:module3:jar:1.0.0-SNAPSHOT from/to MyServer (https://example): Access Denied to: .......etc.
理想情况下,module3 根本不会被部署为工件,而是可能只是具有<packaging>pom</packaging>
. module3 只是一些只能由 module1 和 module2 使用的模块。此外,仅供参考,module3 的依赖树构建得非常好。
解决方案
依赖项永远不应该是包装的
pom
。需要正确的 JAR 并且还需要部署到存储库。通常,您在多模块项目的父级上运行构建命令。如果要将构建限制为一个模块,请使用
-pl
.
推荐阅读
- python - 为python程序生成突变体
- text - 如何将表示原始数字的字符串(例如 130000.1293)操作为格式化字符串(例如 130,000.13)?
- python - 带有 lambda 函数和标量的字典理解
- webdriver - Appium 记录的代码在通过节点启动时不起作用
- sas - 在 SAS Enterprise Guide 中创建格式为 YYYY-MM-DD HH:MM_SS 的宏
- java - 在 Windows 中启动时以管理员权限启动 java 应用程序
- django - 如何使用 Django Rest Framework 视图集按父对象的属性过滤嵌套数据
- docker - 如何将构建阶段创建的文件与同一阶段的dockerfile一起使用?
- docker - 使用刚刚复制的文件运行 docker
- cassandra - 将数据从 cassandra 加载到 powerbi 时如何解决数据限制错误?