【问题标题】:Maven throws "Cannot find symbol" in JenkinsMaven 在 Jenkins 中抛出“找不到符号”
【发布时间】:2015-12-12 20:05:24
【问题描述】:

我正在为 Jenkins 和 Sonarqube 创建一个本地实例。 创建项目并配置相同的项目后,我单击“立即构建”。 在控制台输出中,我可以看到 Maven 开始下载所需的元数据,一旦完成,它会为每个文件抛出 Compilation error "Cannot find symbol"项目。

Maven 也安装在我的机器上,我尝试从 GIT 下载项目并通过命令提示符运行 maven,它构建成功。只有当我通过 Jenkins 构建时,我才会遇到这个问题。有人可以帮我解决这个问题吗?

声纳误差

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli) on project XXXXXXX: Execution default-cli of goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar failed: An API incompatibility was encountered while executing org.codehaus.mojo:sonar-maven-plugin:2.6:sonar: java.lang.UnsupportedClassVersionError: org/sonar/api/utils/SonarException : Unsupported major.minor version 51.0

[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.codehaus.mojo:sonar-maven-plugin:2.6
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories /1/org/codehaus/mojo/sonar-maven-plugin/2.6/sonar-maven-plugin-2.6.jar
[ERROR] urls[1] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
[ERROR] urls[2] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
[ERROR] urls[3] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar
[ERROR] urls[4] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[5] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
[ERROR] urls[6] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar
[ERROR] urls[7] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.jar
[ERROR] urls[8] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[9] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/org/codehaus/sonar/runner/sonar-runner-api/2.4/sonar-runner-api-2.4.jar
[ERROR] urls[10] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
[ERROR] urls[11] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/com/google/guava/guava/10.0.1/guava-10.0.1.jar
[ERROR] urls[12] = file:/C:/Program%20Files%20(x86)/Jenkins/maven-repositories/1/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[project>com.XXXX.etl:XXXX:0.0.1-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]

[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] -> [Help 1]

【问题讨论】:

  • 它指的是哪个符号?它不仅仅是一个符号吗?
  • 您必须更具体地说明您所说的错误。 Cannot find symbol 发生在类路径上的某些内容错误时,因此 maven 找不到任何类,因此它们的方法会导致此错误。看看你是否正确安装了maven。看看你java是不是安装在jenkins服务器上的jdk而不是jre。看看你是否设置了正确的环境变量。查看您的项目是否不使用任何本地库(仅在您的机器上拥有的库)。
  • 豪尔赫·坎波斯你是对的。我已经删除了 Maven 实例。下载并安装了一个新副本对我有用。
  • 但是现在在声纳中得到这个“无法执行目标 org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli)”
  • 再一次,这些是一个非常普遍的例外 - 你应该提供整个错误,因为插件失败的原因有很多。

标签: maven jenkins sonarqube sonarqube5.1


【解决方案1】:

请指定Java的编译版本。这就是您面临此问题的原因 - UnsupportedClassVersionError 尝试在您的 pom.xml 中添加类似的内容

<build>
    <plugins>
        <!-- START Of Plugins -->
        <!-- MAVEN COMPILER PLUGIN -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <!-- END Of Plugins -->
    </plugins>
</build>

这里我用的是 1.7 jdk。但如果需要,您可以更改它。

如果有效请告知...

【讨论】:

  • 就是这样,我使用 JDK 1.6 升级到 1.7 就成功了。除此之外,我还找到了另一种解决方案。如果 Jenkins、maven 和 Sonar 安装在同一个系统中,您可以在 build 下提及“sonar:sonar”,它适用于 jdk1.6 本身。可以在声纳中查看报告。
【解决方案2】:

我有同样的错误。问题是 Jenkins 服务正在 JRE 上运行,即使 JDK 已在系统中正确配置。为了解决这个问题,我不得不停止 Jenkins 服务,删除 JRE,修改 Jenkins XML 以指向 JDK,然后重新启动 Jenkins 服务。只有这样才有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2011-03-25
    • 2014-09-05
    • 1970-01-01
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多