【问题标题】:Set path to JDK for SonarQube in ant在 ant 中为 SonarQube 设置 JDK 的路径
【发布时间】: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 使用?

【问题讨论】:

    标签: java ant java-8 sonarqube sonarqube-scan


    【解决方案1】:

    只需将您的 JAVA_HOME 设置为 JDK 8,然后在您的 ant 脚本中调整 Java 7 的 javac tasksourcetarget 属性,如果您需要针对 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 才能运行
    猜你喜欢
    • 2012-03-25
    • 2014-12-18
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多