LoginSignup
1
0

More than 1 year has passed since last update.

maven-shade-pluginを使おうとしたら「Unsupported class file major version ○○」って言われてビルドできなくなった話

Posted at

コトの発端

Java 16Maven使いながらコードを書いていて依存関係を追加する必要があることに気が付いた私はpom.xmlを開いてdependencyを書き加えていた。
その依存関係はrelocationする事を前提としていたので、いつも通りmaven-shade-pluginのバージョン3.2.4を使ってrelocateの処理を書いた。
暫くしてコードを書き終え、ビルドしてみるとなんとエラーが発生!コンソールには

Unsupported class file major version 60

とかいうわけのわからないエラーが出ていた。

結局何が原因だったのさ

使用していた依存関係がJava 16を使用していて、かつmaven-shade-pluginのバージョン3.2.4を使っていたこと、そしてその状態でrelocationをしようとしていたことが原因だと私の中で結論付けた。(そのままやんけ)

解決方法は?

pom.xmljava.version16にしておく

<properties>
    <java.version>16</java.version>
    ...
</properties>

maven-shade-pluginsnapshotが使えるようにpluginRepositoryを追加する

<pluginRepositories>
    <pluginRepository>
        <id>maven-snapshots</id>
        <url>https://repository.apache.org/content/repositories/snapshots/</url>
    </pluginRepository>
</pluginRepositories>

maven-shade-pluginversion3.3.0-SNAPSHOTにする

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.3.0-SNAPSHOT</version>
    ...
</plugin>

※もちろんIntelliJ側などのプロジェクトSDKはJava 16にしておくように

めんどいね

うん。

1
0
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
1
0