「セキュリティ/静的解析/Sonar/android」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「 ==sonar解析画面インストール== https://docs.sonarqube.org/latest/setup/get-started-2-minutes/ #zip file(https://binaries.sonarsource.com/Distribution/sonarqube...」) |
(→"java.lang.IllegalStateException: SonarQube requires Java 11 to run"エラー) |
||
| (同じ利用者による、間の4版が非表示) | |||
| 行6: | 行6: | ||
#userとpassは"admin"がデフォで設定されてる。 | #userとpassは"admin"がデフォで設定されてる。 | ||
| − | ===設定=== | + | ===macの場合=== |
| + | ====設定==== | ||
$ mv ~/Downloads/sonarqube-8.1.0.31237 /d/src/ | $ mv ~/Downloads/sonarqube-8.1.0.31237 /d/src/ | ||
| − | ===起動=== | + | ====起動==== |
$ /d/src/sonarqube-8.1.0.31237/bin/macosx-universal-64/sonar.sh console | $ /d/src/sonarqube-8.1.0.31237/bin/macosx-universal-64/sonar.sh console | ||
| − | ==="java.lang.IllegalStateException: SonarQube requires Java 11 to run"エラー=== | + | ===="java.lang.IllegalStateException: SonarQube requires Java 11 to run"エラー==== |
| − | java11以外になってるようであればjava11へ | + | java11以外になってるようであればjava11へ(java13でも動いた) |
java -version | java -version | ||
openjdk version "11.0.2" 2019-01-15 | openjdk version "11.0.2" 2019-01-15 | ||
| + | |||
| + | ===debian系の場合=== | ||
| + | ====設定==== | ||
| + | $ cd ~ | ||
| + | $ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.1.0.31237.zip | ||
| + | $ mv sonarqube-8.1.0.31237.zip src/ | ||
| + | $ unzip sonarqube-8.1.0.31237.zip | ||
| + | ====起動==== | ||
| + | $ ~/src/sonarqube-8.1.0.31237/bin/linux-x86-64/sonar.sh console | ||
| + | |||
| + | ===="WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 143"の警告が出る場合==== | ||
| + | 以下を見てみる | ||
| + | $ tail logs/web.log | ||
| + | |||
| + | ===="java.lang.RuntimeException: org.apache.catalina.LifecycleException: Failed to initialize component [StandardServer[-1]]"エラーが起こる場合==== | ||
| + | $ vi conf/sonar.properties | ||
| + | - sonar.web.port=9000 | ||
| + | + sonar.web.port=9010 | ||
| + | ポート9000を使っている可能性があるので、ポートを適当な番号に変更する。 | ||
==androidプロジェクト側にsonarを設定== | ==androidプロジェクト側にsonarを設定== | ||
2020年1月21日 (火) 19:02時点における最新版
sonar解析画面インストール
https://docs.sonarqube.org/latest/setup/get-started-2-minutes/
- zip file(https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.1.0.31237.zip )をDL
- userとpassは"admin"がデフォで設定されてる。
macの場合
設定
$ mv ~/Downloads/sonarqube-8.1.0.31237 /d/src/
起動
$ /d/src/sonarqube-8.1.0.31237/bin/macosx-universal-64/sonar.sh console
"java.lang.IllegalStateException: SonarQube requires Java 11 to run"エラー
java11以外になってるようであればjava11へ(java13でも動いた)
java -version openjdk version "11.0.2" 2019-01-15
debian系の場合
設定
$ cd ~ $ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.1.0.31237.zip $ mv sonarqube-8.1.0.31237.zip src/ $ unzip sonarqube-8.1.0.31237.zip
起動
$ ~/src/sonarqube-8.1.0.31237/bin/linux-x86-64/sonar.sh console
"WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 143"の警告が出る場合
以下を見てみる
$ tail logs/web.log
"java.lang.RuntimeException: org.apache.catalina.LifecycleException: Failed to initialize component [StandardServer[-1]]"エラーが起こる場合
$ vi conf/sonar.properties - sonar.web.port=9000 + sonar.web.port=9010
ポート9000を使っている可能性があるので、ポートを適当な番号に変更する。
androidプロジェクト側にsonarを設定
参考:https://android.jlelse.eu/have-code-quality-analysis-in-your-android-project-2a549e04d1a8
プロジェクト直下のbuild.gradle
buildscript {
repositories {
google()
jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8"
}
}
app/build.gradle
apply plugin: 'org.sonarqube'
sonarqube {
properties {
property "sonar.projectName", "MyProject"
property "sonar.projectKey", "com.example.myproject"
property "sonar.host.url", "http://localhost:9000"
property "sonar.language", "java"
property "sonar.sources", "src/main/"
property "sonar.login", "admin"
property "sonar.password", "admin"
}
}
androidプロジェクト解析実行
androidプロジェクト直下へ移動
./gradlew sonarqube -Dsonar.host.url=http://localhost:9000/
ビルドが成功したら以下へアクセス
http://localhost:9000/
"app/src/androidTest/java/com/example/sonarapplication/ExampleInstrumentedTest.java:6: エラー: パッケージandroidx.test.ext.junit.runnersは存在しません"エラーとなる場合
以下をコメントアウトすれば良い。
app/src/androidTest/java/com/example/sonarapplication/ExampleInstrumentedTest.java
// import androidx.test.ext.junit.runners.AndroidJUnit4; // @RunWith(AndroidJUnit4.class)
"does not exist"エラーが出る時
> The folder 'src/main/' does not exist for 'jp.co.hoge.hoge1' (base directory = /d/www/android/hoge/hoge1)"
以下ソースのpathが適切か確認する。mainなどがなければ削る。
build.gradle
- property "sonar.sources", "src/main/" + property "sonar.sources", "src/"
