無料なのはCommunityでそれ以外のバージョンはServerIDに基づいてライセンスが発行される。ServerIDはJDBC文字列で生成しているらしい。
サーバーとクライアントがある。V5.1ではJDK7以上が必要。内部でElasticSearchを利用しており、メモリをかなり利用するので注意。またバージョンアップが早くV6だとMySQL5.6以上を必要とするなどハードウェア&ミドルウェアの条件が厳しい。2019年ならdockerで試すのが楽。
docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest
http://localhost:9000/ のadmin/adminで入れる
mvn compile sonar:sonar -Dsonar.login=admin -Dsonar.password=admin -Dsonar.svn.username=xxx -Dsonar.svn.password.secured=xxx
could not find java in ES_JAVA_HOME at /usr/lib/jvm/java-11-openjdk/bin/java
privileged: trueを加えることで回避できたが、特権付与になるので他の方法を模索中
Web server startup failed: The following plugins are no longer compatible with this version of SonarQube: 'authgithub', 'authsaml', 'ldap', 'scmgit', 'scmsvn'
sonar-scanner -Dsonar.projectKey=tftool -Dsonar.sources=. -Dsonar.host.url=http://localhost:9000 -Dsonar.login=TOKEN -Dsonar.svn.username=xxx -Dsonar.svn.password.secured=xxx
sonar-scannerはmavenやgradlewが使えない時に使うらしい。新しいバージョンのsonar-scannerは下位互換があるので、気軽にバージョンアップしてOK
上記と同じ値を設定したが、sonar.usernameにtokenを指定してログインで弾かれるので謎。sonar.passwordを追加してしのいだ
sonar.projectKey=tftool sonar.projectName=php sonar.sources=. sonar.host.url=http://localhost:9000 #sonar.login=055fec9a0efce1dc33a10ac3863584417e69eb04 sonar.login=xxx sonar.password=xxx sonar.svn.username=xxx sonar.svn.password.secured=xxx # javaの場合に必要 sonar.java.binaries=target
projectKeyがユニークなIDで、 ProjectNameは表示上のラベル(表によくでてくるのはこちらで、勘違いしないようにProjectNameは指定しないほうが良いかも)
sudo wget -O /etc/yum.repos.d/sonar.repo http://downloads.sourceforge.net/project/sonar-pkg/rpm/sonar.repo sudo yum -y install sonar
ProxyPass /sonar http://localhost:9000/sonar nocanon ProxyPassReverse /sonar http://localhost:9000/sonar ProxyRequests Off AllowEncodedSlashes NoDecode
コンテキストパス/sonarを定義する。
sonar.web.context=/sonar
admin/admin
sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true sonar.web.context=/sonar
事前にsonarデータベースとsonarユーザーを作成しておくこと!
メモリの設定はこちらで!
プラグインはDB移行ではついてこないので、手動で入れる
プラグイン名 | 備考 |
checkstyle | |
Cobertura | A code coverage utility for Java |
test_docker_sonarqube_extensions/_data/plugins以下にjarファイルを配置して再起動。
yumパッケージもある
sudo wget -O /etc/yum.repos.d/sonar.repo http://downloads.sourceforge.net/project/sonar-pkg/rpm/sonar.repo sudo yum install sonar
maven-sonar pluginを利用すれば実行可能。デフォルトでlocalhost:9000に行く。docker sonarなら以下だけでOK。設定が毎回引数で与えるのが面倒ならばsettings.xmlへ記載
mvn compile sonar:sonar -Dsonar.java.binaries=target/classes
http://yoshio.velvet.jp/blog/archives/4076
ruby on railsをjavaで動かしている模様。viewも.erbファイルとなる。
SONARQUBE_DIR/web/WEB-INF/app/views/
SONARQUBE_DIR/web/WEB-INF/app/controllers/ http://docs.sonarqube.org/display/DEV/Extend+Web+Application