通过 属性 文件进行独立的声纳配置
Self-contained sonar configuration through property file
在我看来,在项目本身内部定义项目的所有构建相关配置或质量相关规则(作为人类可读的配置文件)是一种很好的做法。这有几个优点:任何参与该项目的开发人员都可以很容易地看到它使用的配置;人类可读的配置文件是复制配置的自动记录方式(例如,如果需要安装新服务器或切换到不同的服务);配置历史记录与项目的其余历史记录存储在同一位置。
但是 AFAIU SonarQube 的文档更倾向于使用 SonarQube UI 来更改项目的设置。例如,我找不到如何使用 属性 文件配置与默认质量门不同的质量门,而是建议使用 UI 或 curl 配置它。在我看来,这将使外国开发人员无法明显看出该项目使用了不同的质量门。
- 我是不是漏掉了什么,文档是否在某个地方解释了如何在配置文件中配置项目的 SonarQube 设置?
- 如果不是,那么 SonarQube 开发人员是否真的认为我描述为好的做法实际上不是好的做法,为什么?
- 是否有一些(可能未记录的)功能允许做我想做的事?
您没有遗漏任何东西,而且某些配置(例如 Quality Gate 和 Quality Profile)只能通过服务器 UI 配置。主要是因为通常情况下,您希望在整个组织和不同的项目中共享此配置,因此更容易将其集中在服务器本身上。
可以通过创建 sonar-project.properties
文件或在 maven 或 gradle 构建文件中设置属性来设置项目特定设置。您可以通过这种方式配置排除项、覆盖率、测试报告。
您可以使用 web api 以编程方式配置服务器,但对每个项目都这样做并不是预期的使用模式,您可能会遇到一些困难。
在我看来,在项目本身内部定义项目的所有构建相关配置或质量相关规则(作为人类可读的配置文件)是一种很好的做法。这有几个优点:任何参与该项目的开发人员都可以很容易地看到它使用的配置;人类可读的配置文件是复制配置的自动记录方式(例如,如果需要安装新服务器或切换到不同的服务);配置历史记录与项目的其余历史记录存储在同一位置。
但是 AFAIU SonarQube 的文档更倾向于使用 SonarQube UI 来更改项目的设置。例如,我找不到如何使用 属性 文件配置与默认质量门不同的质量门,而是建议使用 UI 或 curl 配置它。在我看来,这将使外国开发人员无法明显看出该项目使用了不同的质量门。
- 我是不是漏掉了什么,文档是否在某个地方解释了如何在配置文件中配置项目的 SonarQube 设置?
- 如果不是,那么 SonarQube 开发人员是否真的认为我描述为好的做法实际上不是好的做法,为什么?
- 是否有一些(可能未记录的)功能允许做我想做的事?
您没有遗漏任何东西,而且某些配置(例如 Quality Gate 和 Quality Profile)只能通过服务器 UI 配置。主要是因为通常情况下,您希望在整个组织和不同的项目中共享此配置,因此更容易将其集中在服务器本身上。
可以通过创建 sonar-project.properties
文件或在 maven 或 gradle 构建文件中设置属性来设置项目特定设置。您可以通过这种方式配置排除项、覆盖率、测试报告。
您可以使用 web api 以编程方式配置服务器,但对每个项目都这样做并不是预期的使用模式,您可能会遇到一些困难。