Eclipse Sonar'应该与travis中的project baseDir'错误相对
在和之间的某段时间,通过travis构建运行sonar开始失败,出现Eclipse Sonar'应该与travis中的project baseDir'错误相对,eclipse,maven,github,sonarqube,travis-ci,Eclipse,Maven,Github,Sonarqube,Travis Ci,在和之间的某段时间,通过travis构建运行sonar开始失败,出现org.eclipse.dawnsi.targetplatform应与project baseDir相关的错误: [ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar (default-cli) on project org.eclipse.scanning: Dir /home/travis
org.eclipse.dawnsi.targetplatform应与project baseDir相关的错误:
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.3.0.603:sonar (default-cli) on project org.eclipse.scanning: Dir /home/travis/build/eclipse/org.eclipse.dawnsci/org.eclipse.dawnsci.targetplatform should be relative to project baseDir -> [Help 1]
查看org.eclipse.dawnci
模块确实与其他模块不同:
<modules>
<module>org.eclipse.scanning.target.platform</module>
<module>../org.eclipse.dawnsci</module>
<module>org.eclipse.scanning.api</module>
...
</modules>
适用于以下各项:
sonar.exclusions=**/*.xml,**/*.class,../org.eclipse.dawnsci
sonar.exclusions=**/*.xml,**/*.class,org.eclipse.dawnsci*
sonar.exclusions=**/*.xml,**/*.class,org.eclipse.dawnsci**
但这些变化都没有起到作用
在我将--fail never
添加到中的mvn-q sonar:sonar
命令之后,这样这个问题不会阻止合并请求,但是再次在我们的repo上生成sonar报告会很好
任何关于如何修复travis构建的建议都将不胜感激。我们更改了验证项目布局的方式,这导致了此错误。A来跟踪这一变化,我们目前正在讨论各种选项(比如为Maven更新SonarQube扫描仪)。请随时关注更新,并对由此带来的不便表示歉意
对于您的特定情况,一种解决方法是创建构建概要文件,并在运行SonarCloud分析时排除模块。/org.eclipse.dawnci
。或者将模块移动到项目basedir下(并避免在模块位置中使用。
)
作为补充说明,如果您使用Maven扫描仪(mvn sonar:sonar
),则维护文件sonar project.properties
没有意义,因为Maven扫描仪将仅从pom.xml读取配置。,因为添加配置文件确实解决了此问题
在pom.xml
中,我更改了
<modules>
<module>org.eclipse.scanning.target.platform</module>
<module>../org.eclipse.dawnsci</module>
...
</modules>
org.eclipse.scanning.target.platform
../org.eclipse.dawnci
...
到
外部模块
真的
../org.eclipse.dawnci
org.eclipse.scanning.target.platform
...
因此,默认情况下包含该模块
然后我添加了-p!externalModules
到.travis.yml
中的我的mvn sonar:sonar
命令,这样在运行sonar分析时它就被排除了。我偶然发现了同样的问题,最后得出结论,在最新的sonar maven插件3.4中,这一切都得到了修复。您只需将依赖项升级到以下位置:
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.4.0.905</version>
</plugin>
org.sonarsource.scanner.maven
声纳maven插件
3.4.0.905
我们已经意识到这个问题,我正在调查。当我找到根本原因后,我会发布一个答案。谢谢你的提示,dawnsi
是一个外部项目,所以我认为它不能移动。当旧的sonaqube
config停止工作时,我切换到使用mvn
(请参阅)。设置这一切的人走了,这里没有人知道这是怎么回事,所以我在黑暗中挣扎。我很抱歉。如果Dawnsi是一个外部项目,那么您可能不应该在SonarCloud中将其作为您项目的一部分进行分析,因为它的技术债务不在您的控制之下。同意,我认为当我切换到通过mvn运行sonar而不是使用sonar scanner
时,Dawnsi
才开始分析dawnsci
不在sonar.properties
中列出的sonar.Includes
中,但在pom.xml
中列出,因为它是构建和运行测试所必需的。顺便说一句,构建概要文件似乎解决了这一问题。不幸的是,travis目前需要5个多小时来运行作业,这使得测试变得困难。
<profiles>
<profile>
<id>externalModules</id>
<activation><activeByDefault>true</activeByDefault></activation>
<modules>
<module>../org.eclipse.dawnsci</module>
</modules>
</profile>
</profiles>
<modules>
<module>org.eclipse.scanning.target.platform</module>
...
</modules>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.4.0.905</version>
</plugin>