无法使用具有 Z/OS 依赖项的 Maven 构建战争

问题描述

我正在尝试建立一场战争,我正在使用以下依赖项

<dependency>
    <groupId>com.ibm</groupId>
    <artifactId>jzos</artifactId>
    <version>2.4</version>
</dependency>

在使用全新安装构建战争时,我收到以下错误

Failed to execute goal on project AbcService: Could not resolve dependencies for project com.abc:AbcWar:war:0.0.1-SNAPSHOT:
Failed to collect dependencies at com.ibm:jzos:jar:2.4: Failed to read artifact descriptor for com.ibm:jzos:jar:2.4:
Could not transfer artifact com.ibm:jzos:pom:2.4 from/to IBM repository `enter code here`(https://mvnrepository.com/artifact/com.ibm.websphere.appserver.api/com.ibm.websphere.appserver.api.jaxrs):
Access denied to https://mvnrepository.com/artifact/com.ibm.websphere.appserver.api/com.ibm.websphere.appserver.api.jaxrs/com/ibm/jzos/2.4/jzos-2.4.pom.
Error code 403,Forbidden -> [Help 1]
[ERROR] 

解决方法

您的设置看起来有些奇怪,很可能是因为您的 Maven 安装使用的 <server> 中定义了 settings.xml

我猜测 enter code here 只是编写 StackOverflow 条目时的错误。因此忽略这一点,我认为您已经定义了一个名为“IBM 存储库”的 <server>,其根 URL 指向 https://mvnrepository.com/artifact/com.ibm.websphere.appserver.api/com.ibm.websphere.appserver.api.jaxrs/,这看起来不正确,因为该地址是服务器上的单个工件显示 Maven Central 上存在哪些工件,而不是 Maven 工件存储库。

该工件 (com.ibm:jzos:2.4) 在 Maven Central 等公共存储库中不可用。所以我认为您可能想要做的是将您的服务器设置为某个公司内部的工件存储库,例如 Nexus 或 Artifactory,工件已上传到该存储库。

检查您的 settings.xml 文件以了解可能发生此错误配置的位置。如果您不确定正在使用哪些文件,请使用 -X 选项运行 Maven 以获取调试日志并搜索 Reading global settingsReading user settings