gpt4 book ai didi

maven - sonar-maven-plugin 无法识别 ${session.executionRootDirectory}

转载 作者:行者123 更新时间:2023-12-02 19:10:49 25 4
gpt4 key购买 nike

我有多个级别的嵌套 Maven 项目,其中每个模块都可以参与全局集成测试。为了实现全局、多模块覆盖,我使用 Maven 变量 ${session.executionRootDirectory} 将 jacoco 配置为跨模块使用和共享相同的文件:

<execution>
<id>pre-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<propertyName>jacoco.failsafeArgLine</propertyName>
<destFile>${session.executionRootDirectory}/target/jacoco-it.exec</destFile>
</configuration>
</execution>

这样,每个模块都会使用相同的数据文件,无论子模块中嵌套的深度如何。我已经检查过,启动“mvn clean install”时,jacoco 生成了正确的数据文件。

现在启动mvn sonar:sonar时出现问题。该插件似乎无法用真实路径替换该变量。我可以在日志中看到以下内容

[INFO] JaCoCoItSensor: JaCoCo IT report not found: /home/tomcat/.jenkins/jobs/MYJOB/workspace/${session.executionRootDirectory}/target/jacoco-it.exec

使用@{session.executionRootDirectory}时效果并不好。

有什么解决办法吗?

最佳答案

已关注 a comment in this bug report at SonarSource ,建议使用以下配置:

<plugin>
<groupId>com.github.goldin</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>0.2.5</version>
<executions>
<execution>
<id>set-sonar.jacoco.reportPath</id>
<goals>
<goal>set-properties</goal>
</goals>
<phase>initialize</phase>
<configuration>
<rawProperties>
sonar.jacoco.itReportPath = ${session.executionRootDirectory}/target/jacoco-it.exec
</rawProperties>
<addDollar>true</addDollar>
</configuration>
</execution>
</executions>
</plugin>

...不幸的是与 Maven 3.1+ 不兼容,我已经使用并从源构建 that fork ,然后我就能够使用 Maven 3.2.3 使一切正常工作。

关于maven - sonar-maven-plugin 无法识别 ${session.executionRootDirectory},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36597838/

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