Kotlinの.ktソースファイルをプログラムから生成するためのKotlin/Java API。
google/auto
AutoValue、AutoFactory、AutoService、Commonのヘルパーを含む、Java向けアノテーション処理コードジェネレーター群です。
- スター
- 10,560
- フォーク
- 1,227
- 未解決の Issue
- 88
- 最終コミット
- 昨日
これは何?
AutoはJava向けのソースコードジェネレーター集です。手作業で書いたり保守したりするのが面倒な、機械的で反復的なコードを対象としています。各サブプロジェクトはコンパイル時にアノテーションプロセッサとして動作し、本来なら自分で書くJavaソースコードを生成します。
AutoValueはJava 8以降向けの不変な値型クラスを生成します。AutoFactoryはJSR-330互換のファクトリークラスを生成します。AutoServiceはServiceLoaderが読み込むプロバイダー設定ファイルを生成します。Commonはアノテーションプロセッサの作成に役立つユーティリティを提供します。
サブプロジェクトはそれぞれ個別にMaven Centralで公開されているため、ビルドには必要なジェネレーターだけを追加できます。
主な機能
- 01AutoValueはJava 8以降向けの不変な値クラスを生成します。
- 02AutoFactoryはJSR-330互換のファクトリーを生成します。
- 03AutoServiceはServiceLoader用のプロバイダー設定ファイルを生成します。
- 04Commonはアノテーションプロセッサ向けのヘルパーユーティリティを提供します。
- 05各サブプロジェクトはMaven Centralで個別に公開されています。
ユースケース
- 不変データクラスのequals、hashCode、ビルダーの定型コードを手書きせずに済ませる。
- JSR-330アノテーションを使って依存関係を注入するファクトリークラスを生成する。
- META-INFファイルを手作業で編集せずに、ServiceLoader向けのサービス実装を登録する。
- 共通のヘルパーユーティリティを利用して、独自のアノテーションプロセッサを作成する。
トピック
よくある質問
- auto とは?
- AutoValue、AutoFactory、AutoService、Commonのヘルパーを含む、Java向けアノテーション処理コードジェネレーター群です。 AutoはJava向けのソースコードジェネレーター集です。手作業で書いたり保守したりするのが面倒な、機械的で反復的なコードを対象としています。各サブプロジェクトはコンパイル時にアノテーションプロセッサとして動作し、本来なら自分で書くJavaソースコードを生成します。
- auto は無料で使えますか?ライセンスは?
- auto は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- auto は今もメンテナンスされていますか?
- 活発にメンテナンス中。auto の最終コミットは 2026年11月6日 です。
- auto は何に使えますか?
- 不変データクラスのequals、hashCode、ビルダーの定型コードを手書きせずに済ませる。 JSR-330アノテーションを使って依存関係を注入するファクトリークラスを生成する。 META-INFファイルを手作業で編集せずに、ServiceLoader向けのサービス実装を登録する。 共通のヘルパーユーティリティを利用して、独自のアノテーションプロセッサを作成する。
- auto はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/google/auto
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Guiceは、ファクトリーやオブジェクトの直接生成を不要にする、Java 11以降向けの軽量な依存性注入フレームワークです。
GradleとMaven向けのビルドプラグインフレームワーク。多くの言語やファイル形式に対応したフォーマッターとリンターを実行します。
long pollingとwebhookの両方に対応した、Telegram Bot API上でTelegram botを構築するためのJavaライブラリ。
Java製の高速なソースコード検索・相互参照エンジン。コードとバージョン管理の履歴をインデックス化できます。
Mavenのビルドを高速化するツール。常駐デーモンでビルドを実行し、高速なネイティブクライアントと並列モジュールビルドに対応します。