gpt4 book ai didi

eclipse - xtext maven 构建在 Jenkins/docker 下失败

转载 作者:行者123 更新时间:2023-12-02 18:15:19 33 4
gpt4 key购买 nike

我正在使用 xtext2.13/java8 开发一个 xtext DSL 项目。这一切都在 maven 下构建和执行回归测试,现在我想将构建移动到与 Jenkins 一起在 CI 下运行。 Jenkins 作业在 docker 镜像中运行 maven。我专门使用 docker 镜像“maven:3.5-jdk-8”。
我可以看到构建开始 - 日志显示正在下载 p2 依赖项,但随后失败并出现以下异常:

[INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/eclipse/tycho/org.eclipse.tycho.p2.tools.impl/1.0.0/org.eclipse.tycho.p2.tools.impl-1.0.0.jar (48 kB at 630 kB/s)
[WARNING] Error initializing: org.eclipse.tycho.p2.resolver.P2DependencyResolver@72725ee1
java.lang.RuntimeException: java.lang.IllegalStateException: Service is not registered class='interface org.eclipse.tycho.core.shared.ProxyServiceFacade'
at org.eclipse.sisu.equinox.embedder.internal.DefaultEquinoxEmbedder.checkStarted (DefaultEquinoxEmbedder.java:312)
...

我可以在本地 docker 中运行 docker/maven 构建,它工作正常。我只在 Jenkins 管道中运行它时才看到这个错误。

该错误没有提供任何关于潜在问题可能是什么的线索。我只能猜测它很可能是以下之一:
  • 对外部存储库的不同访问(但在此之前它能够下载许多其他资源)
  • 不同的本地权限(可能缺少某些资源的权限?)

  • 还有其他建议吗?
    谢谢

    最佳答案

    我有同样的问题。发布我的解决方案以供引用。

    根本原因是 Maven 本地存储库目录包含 ?在路径中(即 ?/.m2/repository )并且第谷无法正确解析目录(常规的 Maven 依赖项很好)。
    发生这种情况是因为如果您使用 --user运行容器时的标志,并且在容器内部,/etc/passwd 中没有该用户的映射${user.home}没有得到妥善解决。

    解决方案是手动指定路径到 mvn 中的有效路径。命令,例如-Dmaven.repo.local=/path/to/repo
    我想其他选择是:

  • 在 Maven 设置文件中指定路径,或
  • 使容器中的相应用户可用(例如,将附加参数添加到容器 -v /etc/passwd:/etc/passwd:ro )
  • 关于eclipse - xtext maven 构建在 Jenkins/docker 下失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48327214/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com