将自定义jar上传到cx-server nexus

时间:2019-04-24 13:19:14

标签: nexus s4sdk

因此,我正在尝试使用s4sdk建立CI / CD管道。我成功完成了this博客中描述的所有步骤。一切似乎都运行顺利,但是我的构建因以下错误消息而失败:

The following artifacts could not be resolved: com.sap.xs2.security:security-commons:jar:0.28.6, com.sap.xs2.security:java-container-security:jar:0.28.6, com.sap.xs2.security:java-container-security-api:jar:0.28.6, com.sap.security.nw.sso.linuxx86_64.opt:sapjwt.linuxx86_64:jar:1.1.19: Could not find artifact com.sap.xs2.security:security-commons:jar:0.28.6 in s4sdk-mirror (http://s4sdk-nexus:8081/repository/mvn-proxy/)

现在,此错误消息对我来说很有意义,因为我记得从SAP下载中心下载了这些工件,因此这些工件在maven Central中不可用。

我认为可以通过将这些工件手动上载到nexus服务器来解决此错误,但是我不知道如何解决。根据nexus文档,在http:// :8081下可以访问一个Web ui,但是它不响应。

我可以用docker ps确认jenkins和nexus容器都在运行,并且nexus容器正在侦听TCP8081。我也可以联系jenkin的前端来配置和运行我的管道。

我想念什么?将丢失的工件上传到联系是否正确?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

您看到的关系容器充当下载缓存,并且设计上不能从外部访问它,以防止对其进行意外更改。另外,它的生命周期由cx-server脚本控制,因此,即使您在此处手动安装了软件包,升级Jenkins也会消失。

我认为处理此问题的最佳方法是设置另一个Nexus实例,在其中安装所需的软件包并配置管道以使用heremvn_repository_url)中所述的方法。该关系需要配置为Maven Central的镜像。我们没有具体的文档,但是this post描述了类似的设置。

在此设置中,您可能要禁用下载缓存,因为它是多余的(cache_enabledfalse)。

我希望这会有所帮助。

亲切的问候

弗洛里安

答案 1 :(得分:2)

sidecar连结在运行cx服务器的主机(和代理)上充当maven和npm工件的只读缓存。默认情况下,它从Maven Central和默认的npm注册表中查找工件。在当前的实现中,停止cx服务器后将完全删除缓存,从而导致所有内部状态丢失。

如果要使用自定义来源,可以通过server.cfgmvn_repository_urlnpm_registry_url中进行设置。这在操作指南中有说明,您可以在这里找到:https://github.com/SAP/cloud-s4-sdk-pipeline/blob/master/doc/operations/operations-guide.md

在这种情况下,您必须指定一个包含相关依赖项的maven存储库。