是否可以在 Azure DevOps 上使用 JAVA 8 构建 SAP Hybris 项目并使用 JAVA 11 扫描声纳?

问题描述

我正在尝试使用 ant 在 Azure DevOps 中构建 SAP Hybris 项目。声纳云被用于代码质量分析,而代码质量分析至少使用 java 11。我们的项目需要使用 java 8 构建。 那么,在 Azure DevOps 中是否有任何可能的方法来做到这一点?

解决方法

是的,有办法,但是你不能再依赖 hybris 的 ant 目标,至少不能直接依赖。

我们正在使用 java 8 执行 hybris 构建过程,并在 java 11 中运行与 gradle 分离的分析。有缺点:

  1. 您需要自己设置整个 gradle 设置 - 或者您可以滥用 hybris 的 ant 目标来生成您的属性并使用它。

  2. 根据您的自动化水平,您可能需要为此付出额外的努力。如前所述,我们正在使用 gradle 来实现某些功能,因此这并不难。

  3. 我认为现在所有 JAVA 8 版本的 SAP COMMERCE/HYBRIS 都不再受支持 - 所以现在是升级的好时机;)

我在这里简要概述了我们的流程:

  1. 设置 JAVA 8
  2. 使用 ant 构建 SAP Commerce
  3. 准备 SONAR 的设置并将它们写入 sonar-project.properties 文件
  4. 设置 JAVA 11
  5. 运行 Sonar-scanner(在我们的例子中是 gradle,但 CLI 等也很好)

棘手的部分在第三点 - 但如前所述,有一个名为 sonarcheckmultisonarcheck 的 ant 任务,它设置属性,并且可以被滥用来编写 sonar-project.properties取决于您手头的工具。