【问题标题】:Adjusting the Sonar BuildBreaker Code调整 Sonar BuildBreaker 代码
【发布时间】:2017-07-08 04:31:54
【问题描述】:

一段时间以来,我一直在尝试在我从 github https://github.com/SonarQubeCommunity/sonar-build-breaker 克隆的 sonar buildbreaker 代码上进行 maven 构建。我正在寻找调整代码,但它不会编译;我已经尝试了几个星期的故障排除。网上好像没有答案。关于这里可能出现的问题有什么建议吗?

这是我的系统详细信息:

Apache Maven 3.3.9 Java 版本:1.8.0_92 Windows 7

这是 maven 构建的错误:

[警告] 注入错误: org.sonarsource.pluginpackaging.SonarPluginMojo java.lang.NoClassDefFoundError: com/google/common/base/Function at java.lang.Class.getDeclaredConstructors0(Native Method) 在 java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) 在 java.lang.Class.getDeclaredConstructors(Class.java:2020) 在 com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:245) 在 com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:99) 在 com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:658) 在 com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:882) 在 com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:805) 在 com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:282) 在 com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:214) 在 com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:1006) 在 com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1038) 在 com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1001) 在 com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051) 在 org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48) 在 com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) 在 com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53) 在 com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:65) 在 com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115) 在 org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176) 在 com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126) 在 com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68) 在 com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63) 在 com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45) 在 com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016) 在 com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) 在 com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012) 在 org.eclipse.sisu.inject.Guice4$1.get(Guice4.java:162) 在 org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81) 在 org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51) 在 org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263) 在 org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255) 在 org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:517) 在 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在 org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 在 org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 在 org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 在 org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 在 org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 在 org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 在 org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) 在 org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 在 org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 在 org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 在 org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 在 org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 引起:java.lang.ClassNotFoundException: com.google.common.base.Function 在 org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247) 在 org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239) ... 55 更多 [信息] -------------------------------------------------- ---------------------- [信息] 构建失败 [信息] -------------------------------------------------- ---------------------- [INFO] 总时间:5.431 s [INFO] 完成时间: 2017-02-17T17:08:10-05:00 [INFO] 最终内存:30M/360M [INFO] -------------------------------------------------- ---------------------- [错误] 未能执行目标 org.sonarsource.sonar-packaging-maven-plugin:sonar-packaging-maven-plugin:1.15:sonar-plugin (default-sonar-plugin) on project sonar-build-breaker-plugin: 执行目标的默认声纳插件 org.sonarsource.sonar-packaging-maven-plugin:sonar-packaging-maven-plugin:1.15:sonar-plugin 失败:执行时缺少所需的类 org.sonarsource.sonar-packaging-maven-plugin:sonar-packaging-maven-plugin:1.15:sonar-plugin:

com/google/common/base/函数 [错误]

【问题讨论】:

  • 请提供运行Maven命令行。

标签: java eclipse maven sonarqube


【解决方案1】:

项目本身很好。它在Travis 上完美运行,我在本地仔细检查了它:

git clone https://github.com/SonarQubeCommunity/sonar-build-breaker.git
cd sonar-build-breaker
mvn verify -B -e -V

使用备用本地 Maven 存储库文件夹 (mvn -Dmaven.repo.local={alternate-repository-folder} verify -B -e -V),您可以确保默认文件夹 (C:\Documents and Settings\{your-username}\.m2\repository) 中可能损坏的依赖项不会打扰您在这里。

【讨论】:

  • 它可能只是我的机器。我经历了罐子地狱并搜索了所有可能的错误消息。感谢您的回复。我将在另一台机器上试一试,看看它是否有效。
猜你喜欢
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 2018-07-27
  • 2012-12-22
  • 2014-03-26
  • 2012-02-16
  • 1970-01-01
相关资源
最近更新 更多