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 sequence of Files; default is []
A list of the jars to be compiled. source_jars または source_files の少なくとも 1 つを指定する必要があります。
source_files シーケンスファイル。 デフォルトは[]
コンパイルする Java ソースファイルのリスト。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 sequence of Files; default is []
A list of inputs that the Java compilation action will take in addition to the Java sources for annotation processing.
annotation_processor_additional_outputs sequence of Files; default is []
アノテーション処理のクラス JAR に加えて、Java コンパイル アクションが出力する出力のリスト。
strict_deps 文字列。 デフォルトは'ERROR'
厳密な依存関係の処理方法を指定する文字列。使用できる値は 'OFF'、'ERROR'、'WARN'、'DEFAULT' です。詳細については、--strict_java_deps flag. By default 'ERROR'. をご覧ください。
java_toolchain 情報。 必須
このコンパイルに使用する JavaToolchainInfo。必須。
bootclasspath デフォルトは None
このコンパイルに使用する BootClassPathInfo。指定した場合、指定された java_toolchain に関連付けられたブートクラスパスがオーバーライドされます。
sourcepath ファイルのシーケンス。 デフォルトは []
resources ファイルのシーケンス。 デフォルトは []
resource_jars ファイルのシーケンス。 デフォルトは []
classpath_resources ファイルのシーケンス。 デフォルトは []
ブール値; デフォルトは False
enable_annotation_processing ブール値; デフォルトは True
このコンパイルでのアノテーション処理を無効にします。これにより、deps のプラグインまたは exported_plugins で提供されるアノテーション プロセッサは無視されます。
enable_compile_jar_action ブール値。 デフォルトは True
ヘッダー コンパイルまたは ijar の作成を有効にします。False に設定すると、依存関係のコンパイル クラスパスで完全なクラス JAR の使用が強制されます。これは、依存関係のないバイナリなどのライブラリ以外のターゲットで使用することを目的としています。
add_exports 文字列シーケンス。 デフォルトは[]
このライブラリが指定された/にアクセスできるようにします。
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 sequence of Files; default is []
A list of source jars to be packed into the source jar.
java_toolchain 情報。 必須
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 情報。 必須
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 情報。 必須
stamp_jar ツールを見つけるために使用する JavaToolchainInfo。