gpt4 book ai didi

maven - 从 Maven pom.xml 更新 sonar-project.properties 文件中的特定属性?

转载 作者:行者123 更新时间:2023-12-04 13:22:42 24 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,它使用 Maven 作为构建和依赖管理工具。 Maven 版本为 3.5.0。

SonarQube 用于进行静态代码分析。开发人员使用 SonarQube scanner在提交到 Git 之前,在他们的机器上扫描项目。 Jenkins 还使用 Sonar Scanner for Jenkins 运行自动分析。 SonarQube 扫描器需要一个名为 sonar-project.properties 的文件,该文件位于项目的根目录中。上面提到的两个用例都使用相同的 sonar-project.properties 文件。

也就是说,我希望在构建期间由 Maven 填充 sonar-project.properties 中的一些属性,这样我们就不必一直在两个地方更改它们.

一些例子是:

  • sonar.projectVersion(利用 pom.xml 中的 native 版本属性)
  • sonar.java.source(利用我在 pom.xml 中的属性)
  • sonar.java.target(利用我在 pom.xml 中的属性)

可行吗?我刚刚开始使用 Maven(来自 Ant),我能够在 Ant 中很容易地做到这一点。

谢谢

最佳答案

是的,Maven 具有在构建过程中用属性替换占位符的功能。它被称为过滤。根据您的用例,您可能需要将以下内容添加到您的 pom.xml

<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<!-- To replace placeholders in sonar-project.properties -->
<include>sonar-project.properties</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<!-- To process default resources located in src/main/resources folder of your project-->
<directory>${project.basedir}/src/main/resources</directory>
<includes>
<include>*.*</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>

Maven 为带有占位符 ${project.version} 的项目版本预定义了属性对于 Java 版本,您需要像这样向 pom.xml 添加自定义属性

<properties>
<java.source.version>1.7</java.source.version>
<java.target.version>1.7</java.target.version>
</properties>

然后你的 sonar-project.properties 将包含这些行

sonar.projectVersion=${project.version}
sonar.java.source=${java.source.version}
sonar.java.target=${java.target.version}

关于maven - 从 Maven pom.xml 更新 sonar-project.properties 文件中的特定属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47930392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com