【问题标题】:Is it possible to implement code clone detection in Azure Devops Build pipeline?是否可以在 Azure Devops Build 管道中实现代码克隆检测?
【发布时间】:2019-07-24 13:44:44
【问题描述】:

我们在 Azure DevOps 中配置了构建管道 (CI)。如果有帮助,以下是定义 (yml):

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:RunCodeAnalysis=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

我们想利用 Visual Studio (https://blogs.msdn.microsoft.com/zainnab/2012/06/28/visual-studio-2012-new-features-code-clone-analysis/) 的克隆代码检测功能来查找代码库中的重复代码,以便团队进行修复。

要在构建定义中使用此功能,我需要做哪些更改?

【问题讨论】:

    标签: .net visual-studio msbuild azure-devops azure-pipelines


    【解决方案1】:

    无法从命令行执行 Visual Studio Code 克隆检测。但是,要实现您想要的,您可以使用 JetBrains Resharper CLI 中的命令行代码克隆检测工具。

    见:https://blog.jetbrains.com/dotnet/2013/09/03/duplicate-finder-part-of-resharper-command-line-tools/

    在 CI 管道中运行这些类型的工具的问题在于,没有好的方法可以在 Azure DevOps UI 中报告克隆,或者在您想要的时候使构建失败。有些克隆只是。其中一些是故意的。因此,理想情况下,这些工具在 IDE 中运行,开发人员可以在那里解决问题。

    使用 Jetbrains Duplicate Finder,您至少可以将代码部分标记为“排除”,以防有意复制。使用代码克隆分析,您可以添加解决方案特定的配置文件来实现这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 2021-10-25
      相关资源
      最近更新 更多