java_common

Starlark での Java コンパイルのサポートのためのユーティリティ。

メンバー

BootClassPathInfo

Provider java_common.BootClassPathInfo

ブートクラスパス情報を提供するために使用されるプロバイダ

compile

struct java_common.compile(ctx, *, source_jars=[], source_files=[], output, output_source_jar=None, javac_opts=[], deps=[], runtime_deps=[], exports=[], plugins=[], exported_plugins=[], native_libraries=[], annotation_processor_additional_inputs=[], annotation_processor_additional_outputs=[], strict_deps='ERROR', java_toolchain, bootclasspath=None, sourcepath=[], resources=[], resource_jars=[], classpath_resources=[], neverlink=False, enable_annotation_processing=True, enable_compile_jar_action=True, add_exports=[], add_opens=[])

Starlark ルールの実装から Java ソースファイル/JAR をコンパイルし、コンパイルの結果を表すプロバイダを返します。このプロバイダは、このルールによって出力されるプロバイダのセットに追加できます。

パラメータ

パラメータ 説明
ctx ctx; 必須
ルール コンテキスト。
source_jars シーケンスファイル。 デフォルトは[]
です。 コンパイルする JAR のリスト。source_jars または source_files の少なくとも 1 つを指定する必要があります。
source_files sequence of Files; default is []
A list of the Java source files to be compiled. source_jars または source_files の少なくとも 1 つを指定する必要があります。
output ファイル; 必須
output_source_jar ファイル; または None; デフォルトは None
出力ソース JAR。設定しない場合、デフォルトは `{output_jar}-src.jar` になります。
javac_opts [sequence] of [string]s; default is []
A list of the desired javac options.
deps [sequence] of [struct]s; default is []
A list of dependencies.
runtime_deps [sequence] of [struct]s; default is []
A list of runtime dependencies.
exports [sequence] of [struct]s; default is []
A list of exports.
plugins 構造体シーケンス。または構造体シーケンス。デフォルトは[]
です。プラグインのリスト。
exported_plugins 構造体シーケンス。または構造体シーケンス。デフォルトは[]
です。エクスポートされたプラグインのリスト。
native_libraries [sequence] of [CcInfo]s; default is []
CC ネイティブ ライブラリの依存関係。このライブラリに必要です。
annotation_processor_additional_inputs Filesシーケンス。デフォルトは []
です。アノテーション処理用の Java ソースに加えて、Java コンパイル アクションが受け取る入力のリスト。
annotation_processor_additional_outputs sequence of Files; デフォルトは []
です。 アノテーション処理のクラス JAR に加えて、Java コンパイル アクションが出力する出力のリスト。
strict_deps 文字列。 デフォルトは 'ERROR'
厳密な依存関係の処理方法を指定する文字列。有効な値: 「OFF」、「ERROR」、「WARN」、「DEFAULT」。詳細については、--strict_java_deps flag. By default 'ERROR'. をご覧ください。
java_toolchain Info; 必須
このコンパイルに使用する JavaToolchainInfo。必須。
bootclasspath デフォルトは None
です。このコンパイルに使用する BootClassPathInfo。指定した場合、指定された java_toolchain に関連付けられたブートクラスパスがオーバーライドされます。
sourcepath ファイルの シーケンス。デフォルトは []
です。
resources ファイルの シーケンス。デフォルトは []
です。
resource_jars ファイルの シーケンス。デフォルトは []
です。
classpath_resources ファイルの シーケンス。デフォルトは []
です。
bool; デフォルトは False
です。
enable_annotation_processing bool; デフォルトは True
です。 このコンパイルでアノテーション処理を無効にします。これにより、deps の plugins または exported_plugins で指定されたアノテーション プロセッサは無視されます。
enable_compile_jar_action bool; デフォルトは True
ヘッダー コンパイルまたは ijar の作成を有効にします。False に設定すると、依存関係のコンパイル クラスパスで完全なクラス JAR の使用が強制されます。これは、依存関係のないバイナリなどのライブラリ以外のターゲットで使用することを目的としています。
add_exports [sequence] of [string]s; default is []
Allow this library to access the given /.
add_opens [sequence] of [string]s; default is []
Allow this library to reflectively access the given /.

JavaRuntimeInfo

Provider java_common.JavaRuntimeInfo

使用されている Java ランタイムに関する情報を含むプロバイダを取得するために使用されるキー。

JavaToolchainInfo

Provider java_common.JavaToolchainInfo

使用されている Java ツールチェーンに関する情報を含むプロバイダを取得するために使用されるキー。

merge

struct java_common.merge(providers)

指定されたプロバイダを 1 つの JavaInfo にマージします。

パラメータ

パラメータ 説明
providers 構造体シーケンス。 必須
マージするプロバイダのリスト。

pack_sources

File java_common.pack_sources(actions, *, output_source_jar=None, sources=[], source_jars=[], java_toolchain)

ソースとソース JAR を 1 つのソース JAR ファイルにパックします。通常、戻り値は

JavaInfo#source_jar

に渡されます。output_jar または output_source_jar パラメータの少なくとも 1 つは必須です。

パラメータ

パラメータ 説明
actions アクション; 必須
ctx.actions
output_source_jar ファイル; または None; デフォルトは None
出力ソース JAR。
sources sequence of Files; default is []
A list of Java source files to be packed into the source jar.
source_jars Files の sequenceのシーケンス。デフォルトは []
です。ソース JAR にパックするソース JAR のリスト。
java_toolchain Info; 必須
ijar ツールを見つけるために使用する JavaToolchainInfo。

run_ijar

File java_common.run_ijar(actions, *, jar, target_label=None, java_toolchain)

JAR で ijar を実行し、メソッド本体を削除します。これにより、メソッド実装の簡単な変更のみで構成される再コンパイル中に、依存 JAR の再ビルドを減らすことができます。通常、戻り値は JavaInfo#compile_jar. に渡されます。

パラメータ

パラメータ 説明
actions アクション; 必須
ctx.actions
jar ファイル; 必須
ijar を実行する JAR。
target_label ラベル; または None; デフォルトは None
JAR にスタンプするターゲット ラベル。add_dep のサポートに使用されます。通常は、ctx.label を渡して、現在のルールのラベルで JAR にスタンプします。
java_toolchain Info; 必須
ijar ツールを見つけるために使用する JavaToolchainInfo。

stamp_jar

File java_common.stamp_jar(actions, *, jar, target_label, java_toolchain)

add_dep のサポートのために、ターゲット ラベルで JAR にスタンプします。通常、戻り値は JavaInfo#compile_jar に渡されます。可能であれば、run_ijar を使用することをおすすめします。

パラメータ

パラメータ 説明
actions アクション; 必須
ctx.actions
jar ファイル; 必須
stamp_jar を実行する JAR。
target_label ラベル; 必須
JAR にスタンプするターゲット ラベル。add_dep のサポートに使用されます。通常は、ctx.label を渡して、現在のルールのラベルで JAR にスタンプします。
java_toolchain Info; 必須
stamp_jar ツールを見つけるために使用する JavaToolchainInfo。