3

当社はsonar 用の C# プラグインのリリースを見てうれしく思い、最初のリリースに飛びつきました。ただし、ProjectLinkSensor によって報告された実行エラーが発生しているようです。行ったことは次のとおりです。

Windows XP マシンでは、以下をインストールしました。

  • Windows 7 開発キット (FxCop を入手するため)
  • Fxcop 10.0
  • ガリオ
  • Sonar 2.9 RC1 (Derby データベースを実行)
  • Maven 2.2.1

次に、ソリューションをチェックアウトし、次の 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>

すべてのモジュールの前に「スキップ」を付けていることに注意してください。これらのモジュールのいずれかをオフにするとエラーが解消され、より明確なバグ レポートを提供できることを期待して、これを 1 つずつ実行しました。しかし、これは役に立ちませんでした。

プロジェクト ディレクトリ (sln ファイルがある場所) に移動し、次のコマンドを実行すると: mvn -e clean sonar:sonar

Maven ソナー プラグインが分析を行い、ローカル ソナー インスタンスから設定をフェッチし、予想される出力ファイル (たとえば、target/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 はあまり詳しくありません) を除けば、これは厄介なバグのように見え、ソナーのアップロードが (少なくとも私にとっては) 機能しません。

他の誰かがこの問題を抱えていましたか? 何が原因で、この場合、エラー報告がひどいのはなぜですか?

Sonar/C-Sharp プラグインのエコシステムが私をここで暗闇の中に置き去りにしていると本当に思っているので、これを Jira のバグとして報告したことに注意してください。ただし、追加情報なしで「修正しない」状態に置かれました。Jira のバグはこちら: https://jira.codehaus.org/browse/SONARPLUGINS-1264

4

2 に答える 2

0

私は c# のソナーの主要な開発者の 1 人です。あなたのジラ チケットを見たことがありません。私は実際に Fabrice に同意します。ユーザーのメーリング リストにメールを送信する必要があります。

あなたの問題について、私の最初の推測は、pom.xml ファイルにエラーがあるということです。「mvn -e clean sonar:sonar」を使用する場合は、pom.xml ファイルで「maven-dotnet-plugin」プラグインを宣言する必要があります。「クリーン」部分は、このプラグインによって実行されます。また、正しいコマンド ラインは "mvn clean package sonar:sonar" であり、分析するアセンブリはありません。

maven-dotnet-plugin の詳細については、http: //maven-dotnet-plugin.appspot.comのドキュメントを参照してください。

ここに pom の例があります: http://maven-dotnet-plugin.appspot.com/configuration.html

それが役に立てば幸い

于 2011-08-21T13:09:53.647 に答える