Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse xtext maven构建在Jenkins/docker下失败_Eclipse_Maven_Docker_Jenkins_Xtext - Fatal编程技术网

Eclipse xtext maven构建在Jenkins/docker下失败

Eclipse xtext maven构建在Jenkins/docker下失败,eclipse,maven,docker,jenkins,xtext,Eclipse,Maven,Docker,Jenkins,Xtext,我正在使用xtext2.13/java8开发一个xtextdsl项目。它都是在maven下构建和执行回归测试,现在我想将构建移到与Jenkins一起在CI下运行。Jenkins的工作以docker的形象运行maven。我专门使用docker镜像maven:3.5-jdk-8。 我可以看到build starts-log显示了正在下载的p2依赖项,但随后失败,出现以下异常: [INFO] Downloaded from central: https://repo.maven.apache.org/

我正在使用xtext2.13/java8开发一个xtextdsl项目。它都是在maven下构建和执行回归测试,现在我想将构建移到与Jenkins一起在CI下运行。Jenkins的工作以docker的形象运行maven。我专门使用docker镜像maven:3.5-jdk-8。 我可以看到build starts-log显示了正在下载的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/存储库)中,Tycho无法正确解析目录,常规的Maven依赖关系没有问题。 发生这种情况的原因是,如果在运行容器时使用-user标志,并且在容器内部/etc/passwd中没有该用户的映射,${user.home}未正确解析

解决方案是在mvn命令中手动指定有效路径的路径,例如。 -Dmaven.repo.local=/path/to/repo

我想其他的选择是:

在Maven设置文件中指定路径,或 要在容器中提供相应的用户,例如向容器添加附加参数-v/etc/passwd:/etc/passwd:ro
我应该补充一点,这个警告变成了一个更长的堆栈跟踪,它变成了一个maven错误,其嵌套最深的异常是:由:java.lang.IllegalStateException:服务未注册class='interface org.eclipse.tycho.core.shared.ProxyServiceFacade'引起,构建失败。我无法在本地maven build中重现这一点,也无法在docker中运行同一容器的本地实例,尽管我可能以不同的方式调用docker,或者它可能是DockerTanks的不同版本!你能把它作为一个bug报告给蒂乔或马文吗?至少可以改进错误消息。错误报告: