lib/tools.jar、sonarque 和 jdk 11

问题描述 投票:0回答:0

我在 jenkins 中有一个完美运行的 jdk 8 完整构建项目。该项目依赖于 lib/tools.jar:

org.jboss.as:jboss-as-clustering-api:jar:7.5.0.Final-redhat-21:provided com.sun:工具:jar:1.6:系统

这个系统依赖对于jdk 8是没有问题的,因为jdk的lib文件夹下有tools.jar。我的 pom.xml 提到了 jboss-as-clustering-api.jar。它没有提到 tools.jar。该项目获取源代码并构建项目。它运行单元测试。它不运行 sonarqube。

在我的 jdk 8 构建旁边,我创建了一个特殊的 jdk 11 sonarqube 项目。该项目运行 jdk 11,因为 sonarqube 9.9 仅适用于 jdk 11 或更高版本。该项目使用完整的构建工作区,它只运行 sonarqube。它不获取源代码,不构建,不运行单元测试。它只使用maven 3.2.5调用sonarqube:

-X -P 完整构建 org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar -e --settings ${build.maven.settings} -Dsonar.projectVersion=${TARGET_SHORT_VERSION}- ${BUILD_NUMBER}

项目失败:

org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目 tmm 上执行目标:无法解析项目 be.bpost.tmm:tmm:pom:27.30.0-SNAPSHOT 的依赖项:找不到工件 com.sun:tools :jar:1.6 在指定路径 /usr/local/post/jdk-11.0.2/../lib/tools.jar

怎么会?

我尝试在 sonarqube 调用之前更改 JAVA_HOME,以便它指向 lib/tools 的 jdk 8:

... JAVA_HOME=/usr/local/post/jdk1.8.0_72

[EnvInject] - 变量注入成功。 [TMM-MAIN-27.30-FB] $ /usr/local/post/groovy-1.7.10/bin/groovy /usr/local/post/bdf-pr/jenkins-pr2/jenkins-home/platformScripts/scripts/groovy /Sonar/prepare-qb.groovy Artifactory 集成已禁用 [TMM-MAIN-27.30-FB] $ /usr/local/post/jdk-11.0.2/bin/java -classpath /usr/local/post/apache-maven-3.2.5/boot/plexus-classworlds-2.5 .2.jar -Dmaven.home=/usr/local/post/apache-maven-3.2.5 -Dclassworlds.conf=/usr/local/post/apache-maven-3.2.5/bin/m2.conf -Xms256m -Xmx1024m -XX:MaxMetaspaceSize=256m -Dsonar.ci.url=${JOB_URL} -Dsonar.scm.url=scm:svn:http://svn.netpost:10080/svn/${ACRONYM}/${ SVN_MODULE}/branches/${BRANCH_NAME} -Djava.io.tmpdir=${TEMP_DIR} -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon。 http.ssl.ignore.validity.dates=true -Dhttp.proxyHost=${HTTP_PROXY_HOST} -Dhttp.proxyPort=${HTTP_PROXY_PORT} -Dhttp.proxyUser=******** -Dhttp.proxyPassword=*** ***** -Dhttps.proxyHost=${HTTP_PROXY_HOST} -Dhttps.proxyPort=${HTTP_PROXY_PORT} -Dhttps.proxyUser=******** -Dhttps.proxyPassword=******** - Dsonar.scm.url=scm:svn:${SVN_URL} -Dsonar.svn.username=********* -Dsonar.svn.password.secured=**** org.codehaus.plexus.classworlds。 launcher.Launcher -f ${ACRONYM}/pom.xml -X -P full-build org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar -e --settings ${build.maven.设置} -Dsonar.projectVersion=${TARGET_SHORT_VERSION}-${BUILD_NUMBER}

这行不通。它仍然找不到 lib/tools.jar。我需要做什么才能让 sonarqube 找到这种依赖关系?谷歌搜索给了我很多结果,但他们都在谈论使用 maven 配置文件来分离构建和 sonarqube 运行。我已经将构建和声纳分离了。我是否必须在我的 pom 文件中对 tools.jar 和 maven 配置文件一起使用排除,以便 pom 在 jdk 11 上排除 tools.jar 并将其包含在 jdk 8 中?我该怎么做呢?有没有人可以赐教一下?

maven jenkins sonarqube java-11 tools.jar
© www.soinside.com 2019 - 2024. All rights reserved.