natural born minority
普通にやると「コケる」か「課金することになる」って…罠な感じが…。
Sonarqubeは「デフォルトに入っている言語」以外は、「プラグインを追加すると解析出来る言語が増える」という仕組みです。
プラグインは「システムの画面内から検索、追加することが出来る」ようになっています。
今回、「iOSアプリの静的解析がしたくなった」ので、公式(上記のシステム画面内)からSwiftの名前を関したプラグイン Swift(Code Analyzer for Swift)
が見つかるので、普通ならそれを入れがちだと思います。
しかし sonar-scanner
を実行し、解析させてみるとエラーになります。
Running Lizard...Running SonarQube using SonarQube Runner.ERROR: Error during SonarQube Scanner execution
ERROR: No license for swift
それもそのはず「公式で出てくるものは有料のプラグイン」であり、(どうやって課金するのかはわかりませんが)ライセンスを手に入れないと使えないようです。
諦めそうになったところで、「有志が作成しているOSSのSwiftプラグイン」を見つけましたので、インストール手段を残します。
Sonarqube
は比較的新しいものをインストール済み
Version 6.3 (build 19869)
上での作業/opt/sonar
としますSonarqubeのプラグインの実体は jar
で配布されており、前述のプラグインも「githubのreleases機能で配布」されています。
そして、「手動でのインストール」については「公式がやり方をドキュメントで紹介」しています。
要約すると…
extensions/plugins/
)にjarを配置と、これで本体が認識し、インストールが完了するようです。
前提の「自分の環境」では
cd /opt/sonar/extensions/plugins/
sudo wget https://github.com/Backelite/sonar-swift/releases/download/0.3.2/backelite-sonar-swift-plugin-0.3.2.jar
sudo service sonar restart
といった感じです。
指定している 0.3.2
は現在の最新なので入れる際は公式を確認してください。
現在、このプラグインを使って見ているのですが、どうやら入れただけでは「行重複(Duplications)」しか検出してくれないようで。
ちょろっとドキュメントを見てみると「 SwiftLint
と連携」みたいな記載が見えるので、今後仕込んで行きたいなと思います。
作者の方に感謝!
blog comments powered by Disqus