我们公司很高兴看到声纳C#插件的发布,并跳过了第一个版本。然而,我们似乎遇到了由ProjectLinkSensor报告的一项请求。以下是我们所做的:
在Windows计算机上,我们安装了以下内容:
然后,我们签出解决方案,并将以下pom.xml放在sln文件所在的目录中:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.rolfje</groupId>
<artifactId>SomeSilverlightProject</artifactId>
<version>1.0-SNAPSHOT</version>
<name>SomeSilverlightProject</name>
<properties>
<sonar.language>cs</sonar.language>
</properties>
<build>
<sourceDirectory>${basedir}</sourceDirectory>
</build>
</project>在运行maven构建的用户的主目录中,我们放置了以下settings.xml:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>dotnet</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.gallio.mode>skip</sonar.gallio.mode>
<sonar.gallio.installDirectory>C:/Program Files/Gallio</sonar.gallio.installDirectory>
<sonar.fxcop.mode>skip</sonar.fxcop.mode>
<sonar.fxcop.installDirectory>D:/Program Files/Microsoft Fxcop 10.0</sonar.fxcop.installDirectory>
<sonar.partcover.mode>skip</sonar.partcover.mode>
<sonar.partcover.installDirectory>C:/Program Files/PartCover/PartCover .NET 4.0</sonar.partcover.installDirectory>
<sonar.gendarme.mode>skip</sonar.gendarme.mode>
<sonar.gendarme.installDirectory>C:/Program Files/gendarme-2.6-bin</sonar.gendarme.installDirectory>
<sonar.gendarme.mode>skip</sonar.gendarme.mode>
<sonar.stylecop.installDirectory>C:/Program Files/Microsoft StyleCop 4.3.2.1</sonar.stylecop.installDirectory>
<sonar.jdbc.url>jdbc:derby://localhost:1527/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>org.apache.derby.jdbc.ClientDriver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>请注意,我将“跳过”放在所有模块的前面。我一个接一个地做了这件事,希望关闭其中一个模块可以删除错误,并且我可以给您一个更清晰的bug报告。然而,这并没有帮助。
当我进入项目目录( sln文件所在的地方)并运行以下命令时: mvn -e洁净声纳:sonar
我看到maven sonar插件进行分析,从本地声纳实例中获取设置,并生成预期的输出文件(例如,目标/声呐/stylecop msbuild.xml)。但是,这些报告不会上传到声纳,我看到maven报告了以下错误:
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Can not execute Sonar
Embedded error: org.sonar.plugins.core.sensors.ProjectLinksSensor has unsatisfied dependency: class org.apache.maven.project.MavenProject among unsatisfiable dependencies: [[class org.apache.maven.project.MavenProject]] where org.sonar.batch.bootstrap.ProjectModule@2c507f:135<I<org.sonar.batch.bootstrap.BatchModule@659812:139<I<org.picocontainer.DefaultPicoContainer@eb1882:44<| was the leaf container being asked for dependencies.
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Can not execute Sonar
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)除了这个相当无用的错误(ProjectModule@2c507f并没有真正告诉我多少)之外,这看起来就像一个讨厌的错误,它导致声纳上传(至少对我来说)无法工作。
还有人有这个问题吗?造成这种情况的原因是什么,为什么错误报告在这种情况下如此糟糕?
请注意,我也报告说这是Jira上的一个bug,因为我真的认为Sonar/C插件生态系统让我处于黑暗之中。但是,如果没有更多的信息,它就会进入“不会修复”的状态。Jira bug在这里:https://jira.codehaus.org/browse/SONARPLUGINS-1264
发布于 2011-07-22 13:04:55
我不知道这是否能解决您的问题,但是我注意到您在所有<sonar.*.installDirectory>标记中都引用了C驱动器,除了<sonar.fxcop.installDirectory>。
哦,你也可以尝试禁用手写模块,因为你不小心在模块前面复制粘贴了<sonar.gendarme.mode>skip</sonar.gendarme.mode> .
发布于 2011-08-21 13:09:53
我是c#声纳的主要开发者之一。我以前没看过你的jira罚单。我实际上同意Fabrice的观点,你应该给用户邮件列表发送一封邮件。
关于您的问题,我的第一个猜测是,您的pom.xml文件有一个错误。如果您使用"mvn -e洁净声纳:声纳“,您需要在pom.xml文件中声明"maven-dotnet- plugin”插件。“干净”部分将由这个插件执行。此外,正确的命令行宁愿是"mvn清洁包装声纳:声纳“,将不会有任何组装分析。
有关maven-dotnet-plugin的更多信息,您可以查看http://maven-dotnet-plugin.appspot.com上的文档。
您将在这里找到一个pom示例:http://maven-dotnet-plugin.appspot.com/configuration.html
希望它能帮上忙
https://stackoverflow.com/questions/6703051
复制相似问题