初試験ソナー


この間はゲームを続けて集積して、CruiseControlからHudsonに変えて、Hudsonの入門について書いていましたが、最近同僚がSonarを使っているのを見て、ちょうどInfoQでSonarの設計アーキテクチャのメトリック機能を紹介する記事を見たので、自分のプロジェクトコードをスキャンしてみました(残念ながらスキャンの結果は少しカップ:-()
 
Sonar is an open platform to manage code quality . As such, it covers the 7 axes of code quality: Architecture & Design, Duplications, Unit tests, Complexity, Potential bugs, Coding rules, Comments.
 
次に、利用可能なSonar環境を構成し、コード・メトリックを迅速に展開する方法について簡単に説明します.
1、準備環境
JDK 1.5+、これは言わない.
 
Maven 2.0.9+、SonarはMaven Pluginを通じてコードをチェックします.この提案は最新のものをインストールします.低バージョンのMavenには、MNG-4001などのSonarの使用に影響を与えるBugがあるため、Pluginが見つからないと報告されます.
 
MySQL 5.x+、Sonarは結果を格納するデータベースが必要です.SonarはDerbyを持参していますが、実際に使用する場合はMySQL、PostgreSQLのようなデータベースを使用すると信頼できます.SonarはOracleとMS SQLServerもサポートしています.
2、データベースの準備
ここではMySQLを使用して分析結果を保存しますので、次のスクリプトを実行します.
 
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all privileges on sonar.* to 'sonar'@'localhost' identified by '    ';
flush privileges;

3、配置Sonar
最新のSonarリリースをダウンロードし、ディレクトリに解凍し、conf/sonarを修正します.propertiesファイルは、データベースの構成に基づいて調整されます.
 
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.driver: com.mysql.jdbc.Driver
sonar.jdbc.validationQuery: select 1
sonar.jdbc.user: sonar
sonar.jdbc.password:あなたのパスワード
4、Tomcatに配備
Sonarには2つの実行モードがあり、1つは付属のサーバを使用して起動し、binディレクトリの下の対応するシステムスクリプトを選択して起動し、http://localhost:9000にアクセスします.
 
2つ目は、Tomcatなどの独立したAppServerに配備することです.
  • ステップ3に従ってconf/sonar.を修正する.propertiesのデータベース構成
  • warディレクトリのbuild-warスクリプト生成warファイル
  • を実行
  • warファイルをアプリケーションサーバに配備する
  • Sonarはメモリに対する要求が高く、一般的なデフォルト構成では需要を満たすことができないため、Tomcatの対応するパラメータをカスタマイズする必要があります.
     
    -Xms1024m -Xmx1024m -XX:MaxPermSize=256m
     
    サーバを起動すると、http://localhost:8080/sonarにアクセスするとインタフェースが表示されます.
    5、コードメジャーの迅速な実行
    Sonarのドキュメントに従って、settingsを構成する必要があります.xmlはmvn sonar:sonarコマンドを使用できます.これは面倒です.次のコマンドを直接使用できます.
    mvn install -Dmaven.test.skip=true
    mvn test org.codehaus.sonar:sonar-maven-plugin:1.8:sonar -Dmaven.test.failure.ignore=true -Dsonar.jdbc.driver=com.mysql.jdbc.Driver "-Dsonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8「-Dsonar.jdbc.username=sonar-Dsonar.jdbc.password=<あなたのパスワード>-Dsonar.host.url=http://localhost:8080/sonar
    リモート操作が必要な場合は、MySQLの権限を設定する必要があります.ファイアウォールがある場合は、3306ポートを開いてください.
     
    grant all on sonar.* to 'sonar'@'%' identified by '<    >';
    flush privileges;

    同様に、Sonarはメモリに対する要求が高いため、Mavenを実行する前に、MAVEN_を構成することが望ましい.OPTS、メモリを増やす:
    -Xmx512m -XX:MaxPermSize=256m
    mvnコマンドの実行中にJAVAが新しいプロセスを開くことができない場合は、Windowsでコマンドラインが最大文字数制限を超えている可能性が高い(jarファイルを多く参照するには、デフォルトのrepoパスが長い)、Mavenのsettingsを変更することも考えられます.xmlファイル、Repositoryの保存パスをカスタマイズします.たとえば、D:/mvn_repo.
     
    このとき,リモートサーバアドレスは192.168.1.2,Sonarのアドレスはhttp://192.168.1.2:8080/sonarを選択すると、次のコマンドが実行されます.
    mvn install -Dmaven.test.skip=true
    mvn test org.codehaus.sonar:sonar-maven-plugin:1.8:sonar -Dmaven.test.failure.ignore=true -Dsonar.jdbc.driver=com.mysql.jdbc.Driver "-Dsonar.jdbc.url=jdbc:mysql://192.168.1.2:3306/sonar?useUnicode=true&characterEncoding=utf8「-Dsonar.jdbc.username=sonar-Dsonar.jdbc.password=<あなたのパスワード>-Dsonar.host.url=http://192.168.1.2:8080/sonar
    6、Hudson集積
    Sonarはまた、プラグインを介してHudsonと統合し、構築が完了するたびにSonarをトリガーすることもできます.
     
    まず、Hudsonのプラグイン管理にHudson Sonar Pluginを追加する必要があります.そして、システム設定に、SonarのInstallationを追加します.最後に、プロジェクトのPost-build actionsでSonarをチェックし、プロジェクト構築が完了すると自動的にSonarのタスクが実行されます.
     
    ただし、Hudson統合でSonarタスクを実行するには、Sonarのドキュメントを参照してMaven構成を変更する必要がある場合があります.
    参照ドキュメント:
  • Sonar: Install Sonar ( http://docs.codehaus.org/display/SONAR/Install+Sonar )
  • Sonar: Collect data ( http://docs.codehaus.org/display/SONAR/Collect+data )
  • Hudson: Sonar Plugin ( http://wiki.hudson-ci.org/display/HUDSON/Sonar+Plugin )