OpenAPI GeneratorでJakarta EEパッケージを使用する方法
環境移行時の問題
Spring Boot 3.0.0へのアップグレードに伴い、javax.annotation.Generated
などのjavax.*
パッケージがJakarta EE仕様に移行しました。OpenAPI Generatorが従来のjavax
パッケージを生成すると、次のエラーが発生します:
エラー: パッケージjavax.annotationは存在しません
解決にはジェネレータの設定変更が必要です。
解決策の実現方法
方法1: useJakartaEe プロパティを使う (推奨)
OpenAPI Generatorバージョン6.3.0以降では、useJakartaEe
プロパティでJakarta EEパッケージを指定します。
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>6.4.0</version> <!-- バージョン6.3.0以上必須 -->
<executions>
<execution>
<configuration>
<configOptions>
<useJakartaEe>true</useJakartaEe>
</configOptions>
<!-- 他の設定 -->
</configuration>
</execution>
</executions>
</plugin>
openApiGenerate {
generatorName = "spring"
configOptions = [
useJakartaEe: "true"
]
// 他の設定
}
方法2: useSpringBoot3 プロパティを使う
useJakartaEe
が利用できない場合、useSpringBoot3
プロパティが代替手段となります。
<configOptions>
<useSpringBoot3>true</useSpringBoot3>
</configOptions>
configOptions = [
useSpringBoot3: "true"
]
プロパティの違い
どちらのプロパティもJakarta EEパッケージの使用を有効化しますが:
useSpringBoot3
: Spring Boot 3.x固有の設定を追加useJakartaEe
: Jakarta EE仕様にのみ焦点を当てる
設定の検証方法
設定変更後、生成されたコードにJakarta EEパッケージが使用されていることを確認:
import jakarta.annotation.Generated; // javaxではなくjakarta!
@Generated(value = "Generatedコード")
public class ExampleController { ... }
プロパティの確認方法(コマンドライン)
Mavenで利用可能な設定オプションを確認:
mvn clean install -DconfigHelp
出力される一覧でuseJakartaEe
またはuseSpringBoot3
を探してください。
トラブルシューティング
重要: ジェネレータのバージョン確認
useJakartaEe
プロパティはOpenAPI Generator 6.3.0以降で実装されました。古いバージョンでは機能しません:
[ERROR] 不明な設定オプション 'useJakartaEe'
常に最新版を利用しましょう:
<version>7.0.0</version> <!-- 執筆時点の最新安定版 -->
公式リリースノートで最新情報を確認してください。
参考リソース
これらの設定でOpenAPI GeneratorはSpring Boot 3.0.0+環境に適したJakarta EEパッケージを生成し、javax.*
パッケージによるコンパイルエラーを解消します。