LoginSignup
8
5

More than 5 years have passed since last update.

maven 3.3 java 8 な環境で jacocoを使ってコードカバレッジを出すのが大変だった

Posted at

本記事は、jacocoの導入関連の記事や公式ドキュメントを読んでも、導入がうまくいかなかった人に向け解決策の1つの可能性を示すものである。

みんながうまくいくかは知らない。

なぜなら筆者自身Mavenとかよくわかってないからだ。

前提

javaのバージョン

java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)

mavenのバージョン

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00)
Maven home: /usr/local/apache-maven-3.3.9
Java version: 1.8.0_74, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/jre
Default locale: ja_JP, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.3", arch: "x86_64", family: "mac"

CIサーバ上でも同様だったのでOSは関係ないだろう。

関連技術

  • jacoco
    • コードカバレッジを計測してくれるライブラリ
    • maven用のプラグインも提供している
    • 本記事ではこのmaven pluginを使う

jacocoの導入

jacocoのusageを読もう。
サンプルのpom.xmlもある。
Qiitaにいろんな記事があるので、タグから探るのもいいでしょう。

コレでうまく行った人はすみやかにこの記事を閉じましょう。

ちなみに自分は以下の様なエラーから無限に抜け出せなかった。

$ mvn jacoco:report
[ERROR] No plugin found for prefix 'jacoco' in the current project and in the plugin groups

ちょくせつmvnのコマンドライン引数でゴールを指定する

最終的にgithubでコード検索したところ。かなりのリポジトリでpom.xmlに書いてないということがわかった。

何の事はないしかるべきタイミングでorg.jacoco:jacoco-maven-pluginというprefixをつかって指定すればいいのだ。
つまりこんな感じ

mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent test
mvn org.jacoco:jacoco-maven-plugin:report

まとめ

素直にやってダメなら、org.jacoco:jacoco-maven-pluginをコマンドライン引数で指定する。

8
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5