maven - 如何使用声纳扫描多模块 Maven 项目?
问题描述
我有一个多模块 maven 项目,当我尝试运行声纳扫描时,只运行了 3 个模块中的 1 个。我有一个带有以下模块的父 Pom
<modules>
<module>core</module>
<module>Infra</module>
<module>web</module>
</modules>
Web 模块是扫描中的唯一覆盖范围。它与包含主类的模块相同。我该怎么做才能获得所有模块?
编辑:
<!-- Sonar -->
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
<sonar.jacoco.reportPath>${project.basedir}/target/jacoco.exec</sonar.jacoco.reportPath>
<sonar.language>java</sonar.language>
我在我的父 POM 属性中有这个
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.9</version>
<configuration>
<destFile>${sonar.jacoco.reportPath}</destFile>
<append>true</append>
</configuration>
<executions>
<execution>
<id>agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<propertyName>jaCoCoArgLine</propertyName>
<destFile>${sonar.jacoco.reportPath}</destFile>
</configuration>
</execution>
<execution>
<id>report-aggregate</id>
<phase>verify</phase>
<goals>
<goal>report-aggregate</goal>
</goals>
<configuration>
<dataFile>${project.basedir}/target/jacoco-unit.exec</dataFile>
<outputDirectory>${project.build.directory}/jacoco-report</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!-- The configuration seems to be required for test coverage to work -->
<configuration>
<argLine>${argLine}</argLine>
</configuration>
</plugin>
这在父 POM 属性中。
这是用于运行声纳的命令
mvn -e org.sonarsource.scanner.maven:sonar-maven-plugin:${config.sonarMavenPluginVersion}:sonar
-Dsonar.host.url=${config.sonarHostUrl}
-Dsonar.login=${config.sonarLogin}
解决方案
这是我为使其正常工作所做的:
将如上的 jacoco 插件添加到父 pom 的构建部分
将以下内容添加到我的 maven settings.xml 文件中(我在本地运行 sonarqube):
<sonar.host.url>http://localhost:9000</sonar.host.url>
<sonar.login>whatever credential you are using for login token </sonar.login>
确保先运行一个,
mvn clean install
然后运行一个mvn sonar:sonar
推荐阅读
- javascript - 如何使用 Cypress 在 Sharepoint 上测试 .aspx 页面
- algorithm - 如何在不同的运行时间对给定记录进行排序 - O(n) 和 O(nlogk),其中 k 是具有键值对的序列 n 的不同值?
- javascript - 无法使用 laravel 5.5 中的 ConsoleTV 图表包从数据库中填充数据集
- android-studio - 运行我的第一个颤振项目时出错
- python - Tensorflow Object Detection - mAP 稳定,但 Total Loss 正在下降。继续训练?
- asp.net-core - VS 2019 自定义 ASP.NET Core 项目模板
- sass - 如何在 Mixin 中插入选择器?
- google-cloud-platform - 如何确认 Cloud IoT Core 的网关连接没有 JWT-auth 连接
- bash - 在 lynx 中阻止对 localhost 的访问
- go - 甚至设置环境路径都找不到 GOPATH