5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【SpringBoot】警告「javax.annotation.meta.Whenのクラス・ファイルが見つかりません」への対処

Posted at

問題

既存のSpringBootプロジェクトで、ビルドすると「Warning:java: 不明な列挙型定数ですjavax.annotation.meta.When.MAYBE 理由: javax.annotation.meta.Whenのクラス・ファイルが見つかりません」という警告が出る状況でした。

これは以前から出ている警告であり、最小構成で何とか再現できないものかと試しましたが再現できませんでした。
よって、何の依存によってこの警告が出ているのかは確認していません。

原因

mvn dependency:treeして調べたところ、javax.annotationパッケージはspring-boot-starter-tomcatによって追加されていましたが、その中にはmetaパッケージが含まれておらず、当然javax.annotation.meta.Whenも定義されていませんでした。

対処法

要するにjavax.annotation.meta.Whenが定義されていれば良いので、それを含む依存を持ってくれば解決します。

調べた限り一番手軽な方法は、以下リポジトリよりFindBugs JSR305を持ってくる事でした。

補足

javax.annotationリポジトリにはjsr305という名前のライブラリが存在します(記事執筆時点ではバージョン0.1と1.0が存在)。

ただ、こちらのリポジトリは、バージョン0.1の方は依存へ正常に追加する方法が分からず、1.0の方は以下のリポジトリを追加しなければ動かないという状況でした。
1.0の方で警告が消えるのは確認しましたが、リポジトリを追加する必要があったり、1.0の最終更新は2014年だったりとちょっと怖い状況だったので、FindBugs JSR305を持ってくるのが無難だと思います。

pom.xml
<repositories>
    <repository>
        <id>hippo</id>
        <name>Hippo Maven 2</name>
        <url>https://maven.onehippo.com/maven2/</url>
    </repository>
</repositories>

雑感

ここまで書いておいてなんですが、関係なさそうな物を追加しなければ動かなかったり、FindBugsは2017年で開発終了していたりと、対処法の方もちょっと不安がある状況なので、実害が無ければこの警告は放置する方が無難という気がします。

参考にさせていただいた記事

5
3
0

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
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?