在 ant 中为 SonarQube 设置 JDK 的路径
Posted
技术标签:
【中文标题】在 ant 中为 SonarQube 设置 JDK 的路径【英文标题】:Set path to JDK for SonarQube in ant 【发布时间】:2018-03-15 20:46:30 【问题描述】:我一直在按照https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Ant 中的说明设置一个 ant 脚本来运行 SonarQube 分析
我的问题是,编译和构建过程是使用 Java 7u45 完成的。 JAVA_HOME 设置为对应的 JDK。
SonarQube 需要 JDK8 进行分析。我已将 JDK 8 复制到该服务器,但如果可能的话,如何在 ant 中指定它的路径以供 SQ 使用?
【问题讨论】:
【参考方案1】:只需将您的 JAVA_HOME 设置为 JDK 8,然后在您的 ant 脚本中调整 Java 7 的 javac task
的 source
和 target
属性,如果您需要针对 Java 7 进行编译,例如:
<javac srcdir="$src"
destdir="$build"
fork="true"
source="1.7"
target="1.7"
/>
详情请见ant manual javac task。
-编辑- 如果没有设置 JAVA_HOME 选项,您可以通过批处理文件启动 ant 进程,设置 JAVA_HOME 和所有其他设置,例如 f.e. :
set ANT_HOME=C:\ant197
set ANT_ARGS=-lib C:\antxtralibs
set JAVA_HOME=C:\jdk180_121
set PATH=%JAVA_HOME%\bin;%ANT_HOME%\bin;%PATH%
:: default
ant -f %1
:: debug
:: ant -debug -f %1
-编辑- 对于 Jenkins,请使用 https://yourjenkinshost/configure/Tools 并创建一个附加 JDK 8,并将 JAVA_HOME 设置为此 JDK 文件夹/安装的根目录。 然后配置您的特定作业以使用该 JDK 8,而其他作业将使用您的默认 JDK。
【讨论】:
我们的脚本中已经有了它。但不幸的是,在我们的案例中,将 JAVA_HOME 设置为 JDK8 不是一个选项。不过感谢您的建议。 @Romczyk 好的,所以从 Linux 上的批处理文件或 shellscript 开始可能是一个选项,请参阅编辑!? 抱歉,我应该提到,我们在 Jenkins 上运行所有构建。我们有大约 30 个,每天运行很多次,只有其中一个我需要对 JDK 8 进行此更改来运行 SonarQube 分析。 @Romczyk 好的,那么为什么要在 Jenkins 上安装 JDK 8 并将这个特定作业配置为使用 JDK 8,其他作业将使用您的默认 JDK 呢? 我没有安装 JDK8,我只在那里复制文件夹。其他版本也在使用这个从站,这个特殊的工作只在晚上运行一次。 SonarQube 需要 JDK8 才能运行以上是关于在 ant 中为 SonarQube 设置 JDK 的路径的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Jenkins 中为 sonarqube 配置 TSLint 插件?
从 SonarQube 4.5.4 LTS 升级到 5.3 后,Ant 分析无法删除文件
Jenkins+Ant+Gitlab+Sonarqube+Docker实现持续集成,质量管理