因此,我正在尝试使用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://
我可以用docker ps
确认jenkins和nexus容器都在运行,并且nexus容器正在侦听TCP8081。我也可以联系jenkin的前端来配置和运行我的管道。
我想念什么?将丢失的工件上传到联系是否正确?任何帮助表示赞赏。
答案 0 :(得分:3)
您看到的关系容器充当下载缓存,并且设计上不能从外部访问它,以防止对其进行意外更改。另外,它的生命周期由cx-server
脚本控制,因此,即使您在此处手动安装了软件包,升级Jenkins也会消失。
我认为处理此问题的最佳方法是设置另一个Nexus实例,在其中安装所需的软件包并配置管道以使用here(mvn_repository_url
)中所述的方法。该关系需要配置为Maven Central的镜像。我们没有具体的文档,但是this post描述了类似的设置。
在此设置中,您可能要禁用下载缓存,因为它是多余的(cache_enabled
至false
)。
我希望这会有所帮助。
亲切的问候
弗洛里安
答案 1 :(得分:2)
sidecar连结在运行cx服务器的主机(和代理)上充当maven和npm工件的只读缓存。默认情况下,它从Maven Central和默认的npm注册表中查找工件。在当前的实现中,停止cx服务器后将完全删除缓存,从而导致所有内部状态丢失。
如果要使用自定义来源,可以通过server.cfg
和mvn_repository_url
在npm_registry_url
中进行设置。这在操作指南中有说明,您可以在这里找到:https://github.com/SAP/cloud-s4-sdk-pipeline/blob/master/doc/operations/operations-guide.md
在这种情况下,您必须指定一个包含相关依赖项的maven存储库。