首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注入错误:公共org.apache.maven.repository.internal.DefaultVersionResolver

注入错误:公共org.apache.maven.repository.internal.DefaultVersionResolver
EN

Stack Overflow用户
提问于 2020-12-18 16:36:24
回答 1查看 293关注 0票数 0

当执行下面的junit jenkins测试用例:https://github.com/ch007m/jenkins-job-dsl/blob/main/src/test/java/dev/snowdrop/MavenJobDSLTest.java时,jenkins作业将引发与Eclipse an /sisu注入问题相关的错误

代码语言:javascript
复制
=== Starting dev.snowdrop.MavenJobDSLTest
[...truncated 1.32 KB...]
Parsing POMs
ERROR: Failed to parse POMs
hudson.maven.MavenEmbedderException: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting: public org.apache.maven.repository.internal.DefaultVersionResolver org.apache.maven.repository.internal.DefaultVersionResolver.setMetadataResolver(org.eclipse.aether.impl.MetadataResolver)
  at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.repository.internal.DefaultVersionResolver
  while locating java.lang.Object annotated with *
  at org.eclipse.sisu.wire.LocatorWiring
  while locating org.eclipse.aether.impl.VersionResolver
    for the 1st parameter of org.eclipse.aether.internal.impl.DefaultRepositorySystem.<init>(DefaultRepositorySystem.java:127)
  while locating org.eclipse.aether.internal.impl.DefaultRepositorySystem
  while locating java.lang.Object annotated with *
  while locating org.apache.maven.artifact.resolver.DefaultArtifactResolver
  at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.artifact.resolver.ArtifactResolver
  while locating org.apache.maven.repository.legacy.LegacyRepositorySystem
  at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.repository.RepositorySystem

1 error
      role: org.apache.maven.repository.RepositorySystem
  roleHint: 
    at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:131)
    at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:110)
    at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:137)
    at hudson.maven.MavenUtil.createEmbedder(MavenUtil.java:211)
    at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1321)
    at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1124)
    at hudson.FilePath.act(FilePath.java:1076)
    at hudson.FilePath.act(FilePath.java:1059)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.parsePoms(MavenModuleSetBuild.java:985)
    at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:689)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513)
    at hudson.model.Run.execute(Run.java:1907)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting: public org.apache.maven.repository.internal.DefaultVersionResolver org.apache.maven.repository.internal.DefaultVersionResolver.setMetadataResolver(org.eclipse.aether.impl.MetadataResolver)
  at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.repository.internal.DefaultVersionResolver
  while locating java.lang.Object annotated with *
  at org.eclipse.sisu.wire.LocatorWiring
  while locating org.eclipse.aether.impl.VersionResolver
    for the 1st parameter of org.eclipse.aether.internal.impl.DefaultRepositorySystem.<init>(DefaultRepositorySystem.java:127)
  while locating org.eclipse.aether.internal.impl.DefaultRepositorySystem
  while locating java.lang.Object annotated with *
  while locating org.apache.maven.artifact.resolver.DefaultArtifactResolver
  at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.artifact.resolver.ArtifactResolver
  while locating org.apache.maven.repository.legacy.LegacyRepositorySystem
  at ClassRealm[maven, parent: ClassRealm[maven-parent, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
  while locating org.apache.maven.repository.RepositorySystem

下面是定义的依赖项

代码语言:javascript
复制
testCompile("org.antlr:antlr4-runtime:4.5")
testCompile("org.apache.maven:maven-artifact:3.6.3")
testCompile('org.apache.maven:maven-compat:3.6.3')
testCompile("org.jenkins-ci.lib:lib-jenkins-maven-embedder:3.15")
testCompile("org.jvnet.hudson:hudson-maven-embedder:3.2")
testCompile 'org.jenkins-ci.main:maven-plugin:3.8@jar'

是我错过了一个依赖项,还是我们有一个类加载问题,....?

干杯

查尔斯

EN

回答 1

Stack Overflow用户

发布于 2020-12-19 17:22:38

在本地为junit测试解压jpi存档的内容后,我修复了这个问题请参阅:https://github.com/ch007m/jenkins-job-dsl/blob/4917f812106351ced36243c2bd804957d0801735/build.gradle#L78

在这种情况下,我们不再有eclipse sisu/guice报告的类冲突。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65353903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档