ルール
- java_binary
- java_import
- java_library
- java_test
- java_package_configuration
- java_plugin
- java_runtime
- java_single_jar
- java_toolchain
java_binary
ルールソースを表示java_binary(name, deps, srcs, data, resources, add_exports, add_opens, args, bootclasspath, classpath_resources, compatible_with, create_executable, deploy_env, deploy_manifest_lines, deprecation, distribs, env, exec_compatible_with, exec_properties, features, javacopts, jvm_flags, launcher, licenses, main_class, neverlink, output_licenses, plugins, resource_strip_prefix, restricted_to, runtime_deps, stamp, tags, target_compatible_with, testonly, toolchains, use_launcher, use_testrunner, visibility)
Java アーカイブ(「jar ファイル」)と、ルールと同じ名前のラッパー シェル スクリプトをビルドします。ラッパー シェル スクリプトは、バイナリが依存するライブラリごとに jar ファイルを含むクラスパスを使用します。ラッパー シェル スクリプトを実行すると、空でない JAVABIN
環境変数が、Bazel の --java_runtime_version
フラグで指定されたバージョンよりも優先されます。
ラッパー スクリプトは、いくつかの独自のフラグを受け入れます。ラッパーで受け入れられる構成可能なフラグと環境変数のリストについては、//src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
をご覧ください。
暗黙的な出力ターゲット
name.jar
: バイナリの直接依存関係に対応するクラスファイルやその他のリソースを含む Java アーカイブ。name-src.jar
: ソースを含むアーカイブ(「ソース jar」)。name_deploy.jar
: デプロイに適した Java アーカイブ(明示的にリクエストされた場合にのみビルドされます)。ルールの
<name>_deploy.jar
ターゲットをビルドすると、java -jar
コマンドまたはラッパー スクリプトの--singlejar
オプションで実行できるマニフェストを含む自己完結型の jar ファイルが作成されます。ラッパー スクリプトを使用することをおすすめします。これは、JVM フラグとネイティブ ライブラリを読み込むオプションも渡すためです。java -jar
デプロイ JAR には、バイナリのラッパー スクリプトから最初から最後までクラスパスを検索したクラスローダーによって検出されるすべてのクラスが含まれています。また、依存関係に必要なネイティブ ライブラリも含まれています。これらは実行時に JVM に自動的に読み込まれます。
ターゲットで launcher 属性が指定されている場合、_deploy.jar は通常の JAR ファイルではなく、ネイティブ バイナリになります。これには、ランチャーと、ルールのネイティブ(C++)依存関係がすべて静的バイナリにリンクされます。実際の JAR ファイルのバイトはそのネイティブ バイナリに追加され、実行可能ファイルと Java コードの両方を含む単一のバイナリ ブロブが作成されます。生成された jar ファイルは、ネイティブ バイナリを実行する場合と同様に直接実行できます。
name_deploy-src.jar
: ターゲットの推移閉包から収集されたソースを含むアーカイブ。これらのクラスは、jar に一致するソース jar がない限り、deploy.jar
のクラスと一致します。
アプリのメイン エントリ ポイントであるソースファイルの名前(拡張子を除く)を使用することをおすすめします。たとえば、エントリ ポイントが Main.java
の場合、名前は Main
にできます。
deps
属性は、srcs
のない java_binary
ルールでは使用できません。このようなルールには、runtime_deps
によって提供される main_class
が必要です。
次のコード スニペットは、一般的な間違いを示しています。
java_binary(
name = "DontDoThis",
srcs = [
...,
"GeneratedJavaFile.java"
, # a generated .java file
],
deps = [":generating_rule",
], # rule that generates that file
)
代わりに次のようにしてください。
java_binary(
name = "DoThisInstead",
srcs = [
...,
":generating_rule",
],
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは deps に関する一般的なコメントについては、ほとんどのビルドルールで定義される一般的な属性をご覧ください。
|
srcs
|
ラベルのリスト。デフォルトは
ルール: ルール(通常は
この引数は、 |
data
|
ラベルのリスト。デフォルトは data に関する一般的なコメントについては、ほとんどのビルドルールで定義される一般的な属性をご覧ください。
|
resources
|
ラベルのリスト。デフォルトは リソースは、ソースファイルまたは生成ファイルのいずれかです。
リソースが指定されている場合、それらは、コンパイルによって生成された通常の |
add_exports
|
文字列のリスト。デフォルトは module または package へのアクセスを許可します。これは、javac と JVM --add-exports= フラグに対応しています。 |
add_opens
|
文字列のリスト。デフォルトは module または package にリフレクタ的にアクセスできるようにします。これは、javac と JVM --add-opens= フラグに対応します。 |
bootclasspath
|
ラベル(デフォルトは |
classpath_resources
|
ラベルのリスト。デフォルトは
Java ツリーのルートに配置する必要があるリソースのリスト。この属性の唯一の目的は、リソースがクラスパスで |
create_executable
|
ブール値。デフォルトは java_single_jar を使用してください。
|
deploy_env
|
ラベルのリスト。デフォルトは java_binary ターゲットのリスト。別の java_binary によって読み込まれるプラグインをビルドする場合は、この属性を設定します。この属性を設定すると、このバイナリと deploy_env で指定されたターゲット間で共有される、このバイナリのランタイム クラスパス(およびデプロイ JAR)からすべての依存関係が除外されます。 |
deploy_manifest_lines
|
文字列のリスト。デフォルトは *_deploy.jar ターゲット用に生成された META-INF/manifest.mf ファイルに追加する行のリスト。この属性の内容は、「変数を作成」置換の対象になりません。 |
javacopts
|
文字列のリスト。デフォルトは これらのコンパイラ オプションは、グローバル コンパイラ オプションの後に javac に渡されます。 |
jvm_flags
|
文字列のリスト。デフォルトは Java バイナリのラッパー スクリプトには、CLASSPATH 定義(依存するすべての jar を見つけるため)が含まれており、適切な Java インタープリタを呼び出します。ラッパー スクリプトによって生成されたコマンドラインには、メインクラスの名前の後に この属性は |
launcher
|
ラベル(デフォルトは bin/java プログラムではなく、Java プログラムの実行に使用するバイナリを指定します。ターゲットは cc_binary である必要があります。
Java Invocation API を実装する cc_binary を、この属性の値として指定できます。デフォルトでは、Bazel は通常の JDK ランチャー(bin/java または java.exe)を使用します。 関連する ネイティブ(C++、SWIG、JNI)の依存関係は、JDK ランチャーと他のランチャーのどちらを使用しているかによってビルド方法が異なります。
デフォルトの JDK ランチャー以外のランチャーを使用すると、 |
main_class
|
文字列。デフォルトは main() メソッドを含むクラスの名前。ルールでこのオプションを使用する場合、srcs=[...] リストは必要ありません。したがって、この属性を使用すると、1 つ以上の main() メソッドがすでに含まれている Java ライブラリから実行可能ファイルを作成できます。
この属性の値は、ソースファイルではなくクラス名です。クラスは実行時に使用可能である必要があります。このルールによってコンパイルされる( |
neverlink
|
ブール値。デフォルトは |
plugins
|
ラベルのリスト。デフォルトは java_plugin は、このルールがビルドされるたびに実行されます。ライブラリは、exported_plugins を使用する依存関係からプラグインを継承することもできます。プラグインによって生成されたリソースは、このルールの結果として生成される jar に含まれます。 |
resource_strip_prefix
|
文字列。デフォルトは
指定すると、このパス接頭辞は |
runtime_deps
|
ラベルのリスト。デフォルトは deps と同様に、これらはランタイム クラスパスに表示されますが、コンパイル時クラスパスには表示されません。実行時にのみ必要な依存関係をここに記載します。依存関係分析ツールは、runtime_deps と deps の両方に表示されるターゲットを無視する必要があります。 |
stamp
|
整数。デフォルトは
スタンプされたバイナリは、依存関係が変更されない限り再ビルドされません。 |
use_launcher
|
ブール値。デフォルトは この属性を false に設定すると、このターゲットでは launcher 属性と関連する |
use_testrunner
|
ブール値。デフォルトは com.google.testing.junit.runner.BazelTestRunner )クラスを使用し、テストクラスを bazel.test_suite システム プロパティの値としてテストランナーに提供します。これを使用して、デフォルトの動作をオーバーライドできます。デフォルトの動作では、 java_test ルールにはテストランナーを使用し、java_binary ルールには使用しません。通常は、この方法はおすすめしません。たとえば、テストの実行前にデータベースをセットアップするために、別のルールによって呼び出される AllTest ルールに使用できます。AllTest ルールは java_binary として宣言する必要がありますが、メインのエントリ ポイントとしてテストランナーを使用する必要があります。テストランナー クラスの名前は、main_class 属性でオーバーライドできます。 |
java_import
ルールソースを表示java_import(name, deps, data, add_exports, add_opens, compatible_with, constraints, deprecation, distribs, exec_compatible_with, exec_properties, exports, features, jars, licenses, neverlink, proguard_specs, restricted_to, runtime_deps, srcjar, tags, target_compatible_with, testonly, toolchains, visibility)
このルールにより、java_library
ルールと java_binary
ルールのライブラリとして、事前コンパイルされた .jar
ファイルを使用できます。
例
java_import(
name = "maven_model",
jars = [
"maven_model/maven-aether-provider-3.2.3.jar",
"maven_model/maven-model-3.2.3.jar",
"maven_model/maven-model-builder-3.2.3.jar",
],
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは |
data
|
ラベルのリスト。デフォルトは |
add_exports
|
文字列のリスト。デフォルトは module または package へのアクセスを許可します。これは、javac と JVM --add-exports= フラグに対応しています。 |
add_opens
|
文字列のリスト。デフォルトは module または package にリフレクタ的にアクセスできるようにします。これは、javac と JVM --add-opens= フラグに対応します。 |
constraints
|
文字列のリスト。デフォルトは |
exports
|
ラベルのリスト。デフォルトは |
jars
|
ラベルのリスト(必須) このターゲットに依存する Java ターゲットに提供される JAR ファイルのリスト。 |
neverlink
|
ブール値。デフォルトは tools.jar などがあります。 |
proguard_specs
|
ラベルのリスト。デフォルトは android_binary ターゲットに追加されます。このファイルには、べき等のルール(-dontnote、-dontwarn、assumenosideeffects、-keep で始まるルール)のみを含める必要があります。他のオプションは、重複しないマージを確実に行うために、android_binary の proguard_specs にのみ表示できます。 |
runtime_deps
|
ラベルのリスト。デフォルトは |
srcjar
|
ラベル(デフォルトは |
java_library
ルールソースを表示java_library(name, deps, srcs, data, resources, add_exports, add_opens, bootclasspath, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exported_plugins, exports, features, javabuilder_jvm_flags, javacopts, licenses, neverlink, plugins, proguard_specs, resource_strip_prefix, restricted_to, runtime_deps, tags, target_compatible_with, testonly, toolchains, visibility)
このルールは、ソースをコンパイルして .jar
ファイルにリンクします。
暗黙的な出力
libname.jar
: クラスファイルを含む Java アーカイブ。libname-src.jar
: ソースを含むアーカイブ(「ソース jar」)。
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは deps に関する一般的なコメントについては、ほとんどのビルドルールで定義される一般的な属性をご覧ください。
対照的に、 |
srcs
|
ラベルのリスト。デフォルトは
ルール: ルール(通常は
上記のファイル形式のファイルが 1 つ以上ある限り、他のファイルは無視されます。そうでない場合は、エラーが発生します。
|
data
|
ラベルのリスト。デフォルトは data に関する一般的なコメントについては、ほとんどのビルドルールで定義される一般的な属性をご覧ください。
|
resources
|
ラベルのリスト。デフォルトは リソースは、ソースファイルまたは生成ファイルのいずれかです。
リソースが指定されている場合、それらは、コンパイルによって生成された通常の |
add_exports
|
文字列のリスト。デフォルトは module または package へのアクセスを許可します。これは、javac と JVM --add-exports= フラグに対応しています。 |
add_opens
|
文字列のリスト。デフォルトは module または package にリフレクタ的にアクセスできるようにします。これは、javac と JVM --add-opens= フラグに対応します。 |
bootclasspath
|
ラベル(デフォルトは |
exported_plugins
|
ラベルのリスト。デフォルトは java_plugin (アノテーション プロセッサなど)のリスト。
指定された |
exports
|
ラベルのリスト。デフォルトは
ここでルールをリストすると、親ルールがこれらのルールに明示的に依存しているかのように、親ルールで使用できるようになります。これは、通常の(エクスポートされていない)
要約: ルール X は、
A が B に依存し、B が C に依存しているとします。この場合、C は A の推移的依存関係であるため、C のソースを変更して A を再ビルドすると、すべてが正しく再ビルドされます。ただし、A は C のクラスを使用できません。これを許可するには、A が エクスポートされたライブラリのクローズは、すべての直接親ルールで使用できます。少し異なる例を挙げましょう。A は B に依存し、B は C と D に依存し、C をエクスポートしますが、D はエクスポートしません。これで、A は C にアクセスできますが、D にはアクセスできません。C と D がそれぞれ C' と D' というライブラリをエクスポートした場合、A は C' にのみアクセスでき、D' にはアクセスできません。
重要: エクスポートされたルールは通常の依存関係ではありません。前述の例に沿って、B が C をエクスポートし、C も使用する場合、B は独自の |
javabuilder_jvm_flags
|
文字列のリスト。デフォルトは |
javacopts
|
文字列のリスト。デフォルトは これらのコンパイラ オプションは、グローバル コンパイラ オプションの後に javac に渡されます。 |
neverlink
|
ブール値。デフォルトは tools.jar などがあります。
ランタイム ライブラリがコンパイル ライブラリと異なる場合は、JLS でコンパイラのインライン化が禁止されている場所でのみ異なることを確認する必要があります(これは、今後の JLS のすべてのバージョンで保持する必要があります)。 |
plugins
|
ラベルのリスト。デフォルトは java_plugin は、このルールがビルドされるたびに実行されます。ライブラリは、exported_plugins を使用する依存関係からプラグインを継承することもできます。プラグインによって生成されたリソースは、このルールの結果として生成される jar に含まれます。 |
proguard_specs
|
ラベルのリスト。デフォルトは android_binary ターゲットに追加されます。このファイルには、べき等のルール(-dontnote、-dontwarn、assumenosideeffects、-keep で始まるルール)のみを含める必要があります。他のオプションは、重複しないマージを確実に行うために、android_binary の proguard_specs にのみ表示できます。 |
resource_strip_prefix
|
文字列。デフォルトは
指定すると、このパス接頭辞は |
runtime_deps
|
ラベルのリスト。デフォルトは deps と同様に、これらはランタイム クラスパスに表示されますが、コンパイル時クラスパスには表示されません。実行時にのみ必要な依存関係をここに記載します。依存関係分析ツールは、runtime_deps と deps の両方に表示されるターゲットを無視する必要があります。 |
java_test
ルールソースを表示java_test(name, deps, srcs, data, resources, add_exports, add_opens, args, bootclasspath, classpath_resources, compatible_with, create_executable, deploy_manifest_lines, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, javacopts, jvm_flags, launcher, licenses, local, main_class, neverlink, plugins, resource_strip_prefix, restricted_to, runtime_deps, shard_count, size, stamp, tags, target_compatible_with, test_class, testonly, timeout, toolchains, use_launcher, use_testrunner, visibility)
java_test()
ルールは Java テストをコンパイルします。テストは、テストコードをラップするバイナリ ラッパーです。メインクラスがコンパイルされる代わりに、テストランナーのメインメソッドが呼び出されます。
暗黙的な出力ターゲット
name.jar
: Java アーカイブ。name_deploy.jar
: デプロイに適した Java アーカイブ。(明示的にリクエストされた場合にのみビルドされます)。詳細については、java_binary からのname_deploy.jar
出力の説明をご覧ください。
java_binary()
引数のセクションをご覧ください。このルールは、すべてのテストルールに共通の属性(*_test)もサポートしています。
例
java_library(
name = "tests",
srcs = glob(["*.java"]),
deps = [
"//java/com/foo/base:testResources",
"//java/com/foo/testing/util",
],
)
java_test(
name = "AllTests",
size = "small",
runtime_deps = [
":tests",
"//util/mysql",
],
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは deps に関する一般的なコメントについては、ほとんどのビルドルールで定義される一般的な属性をご覧ください。
|
srcs
|
ラベルのリスト。デフォルトは
ルール: ルール(通常は
この引数は、 |
data
|
ラベルのリスト。デフォルトは data に関する一般的なコメントについては、ほとんどのビルドルールで定義される一般的な属性をご覧ください。
|
resources
|
ラベルのリスト。デフォルトは リソースは、ソースファイルまたは生成ファイルのいずれかです。
リソースが指定されている場合、それらは、コンパイルによって生成された通常の |
add_exports
|
文字列のリスト。デフォルトは module または package へのアクセスを許可します。これは、javac と JVM --add-exports= フラグに対応しています。 |
add_opens
|
文字列のリスト。デフォルトは module または package にリフレクタ的にアクセスできるようにします。これは、javac と JVM --add-opens= フラグに対応します。 |
bootclasspath
|
ラベル(デフォルトは |
classpath_resources
|
ラベルのリスト。デフォルトは
Java ツリーのルートに配置する必要があるリソースのリスト。この属性の唯一の目的は、リソースがクラスパスで |
create_executable
|
ブール値。デフォルトは java_single_jar を使用してください。
|
deploy_manifest_lines
|
文字列のリスト。デフォルトは *_deploy.jar ターゲット用に生成された META-INF/manifest.mf ファイルに追加する行のリスト。この属性の内容は、「変数を作成」置換の対象になりません。 |
javacopts
|
文字列のリスト。デフォルトは これらのコンパイラ オプションは、グローバル コンパイラ オプションの後に javac に渡されます。 |
jvm_flags
|
文字列のリスト。デフォルトは Java バイナリのラッパー スクリプトには、CLASSPATH 定義(依存するすべての jar を見つけるため)が含まれており、適切な Java インタープリタを呼び出します。ラッパー スクリプトによって生成されたコマンドラインには、メインクラスの名前の後に この属性は |
launcher
|
ラベル(デフォルトは bin/java プログラムではなく、Java プログラムの実行に使用するバイナリを指定します。ターゲットは cc_binary である必要があります。
Java Invocation API を実装する cc_binary を、この属性の値として指定できます。デフォルトでは、Bazel は通常の JDK ランチャー(bin/java または java.exe)を使用します。 関連する ネイティブ(C++、SWIG、JNI)の依存関係は、JDK ランチャーと他のランチャーのどちらを使用しているかによってビルド方法が異なります。
デフォルトの JDK ランチャー以外のランチャーを使用すると、 |
main_class
|
文字列。デフォルトは main() メソッドを含むクラスの名前。ルールでこのオプションを使用する場合、srcs=[...] リストは必要ありません。したがって、この属性を使用すると、1 つ以上の main() メソッドがすでに含まれている Java ライブラリから実行可能ファイルを作成できます。
この属性の値は、ソースファイルではなくクラス名です。クラスは実行時に使用可能である必要があります。このルールによってコンパイルされる( |
neverlink
|
ブール値。デフォルトは |
plugins
|
ラベルのリスト。デフォルトは java_plugin は、このルールがビルドされるたびに実行されます。ライブラリは、exported_plugins を使用する依存関係からプラグインを継承することもできます。プラグインによって生成されたリソースは、このルールの結果として生成される jar に含まれます。 |
resource_strip_prefix
|
文字列。デフォルトは
指定すると、このパス接頭辞は |
runtime_deps
|
ラベルのリスト。デフォルトは deps と同様に、これらはランタイム クラスパスに表示されますが、コンパイル時クラスパスには表示されません。実行時にのみ必要な依存関係をここに記載します。依存関係分析ツールは、runtime_deps と deps の両方に表示されるターゲットを無視する必要があります。 |
stamp
|
整数。デフォルトは
スタンプされたバイナリは、依存関係が変更されない限り再ビルドされません。 |
test_class
|
文字列。デフォルトは
デフォルトでは、この引数が定義されていない場合は、従来モードが使用され、代わりにテスト引数が使用されます。最初の引数にフォールバックしないように
この属性には、このテストで実行する Java クラスの名前を指定します。設定する必要はほとんどありません。この引数を省略すると、ターゲットの
JUnit3 の場合、テストクラスは
この属性を使用すると、複数の |
use_launcher
|
ブール値。デフォルトは この属性を false に設定すると、このターゲットでは launcher 属性と関連する |
use_testrunner
|
ブール値。デフォルトは com.google.testing.junit.runner.BazelTestRunner )クラスを使用し、テストクラスを bazel.test_suite システム プロパティの値としてテストランナーに提供します。これを使用して、デフォルトの動作をオーバーライドできます。デフォルトの動作では、 java_test ルールにはテストランナーを使用し、java_binary ルールには使用しません。通常は、この方法はおすすめしません。たとえば、テストの実行前にデータベースをセットアップするために、別のルールによって呼び出される AllTest ルールに使用できます。AllTest ルールは java_binary として宣言する必要がありますが、メインのエントリ ポイントとしてテストランナーを使用する必要があります。テストランナー クラスの名前は、main_class 属性でオーバーライドできます。 |
java_package_configuration
ルールソースを表示java_package_configuration(name, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, javacopts, output_licenses, packages, restricted_to, system, tags, target_compatible_with, testonly, toolchains, visibility)
一連のパッケージに適用する構成。構成は java_toolchain.javacopts
に追加できます。
例:
java_package_configuration(
name = "my_configuration",
packages = [":my_packages"],
javacopts = ["-Werror"],
)
package_group(
name = "my_packages",
packages = [
"//com/my/project/...",
"-//com/my/project/testing/...",
],
)
java_toolchain(
...,
package_configuration = [
":my_configuration",
]
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
data
|
ラベルのリスト。デフォルトは |
javacopts
|
文字列のリスト。デフォルトは |
output_licenses
|
文字列のリスト。デフォルトは |
packages
|
ラベルのリスト。デフォルトは package_group のセット。 |
system
|
ラベル(デフォルトは |
java_plugin
ルールソースを表示java_plugin(name, deps, srcs, data, resources, add_exports, add_opens, bootclasspath, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, generates_api, javabuilder_jvm_flags, javacopts, licenses, neverlink, output_licenses, plugins, processor_class, proguard_specs, resource_strip_prefix, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_plugin
は、Bazel によって実行される Java コンパイラ用プラグインを定義します。サポートされているプラグインの種類は、アノテーション プロセッサのみです。java_library
ルールまたは java_binary
ルールは、plugins
属性を介してプラグインを依存することで、プラグインを実行できます。java_library
は、exported_plugins
を使用して、そのライブラリに直接依存するライブラリにプラグインを自動的にエクスポートすることもできます。
暗黙的な出力ターゲット
libname.jar
: Java アーカイブ。
引数は、processor_class
引数の追加を除き、java_library
と同じです。
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは deps に関する一般的なコメントについては、ほとんどのビルドルールで定義される一般的な属性をご覧ください。
対照的に、 |
srcs
|
ラベルのリスト。デフォルトは
ルール: ルール(通常は
上記のファイル形式のファイルが 1 つ以上ある限り、他のファイルは無視されます。そうでない場合は、エラーが発生します。
|
data
|
ラベルのリスト。デフォルトは data に関する一般的なコメントについては、ほとんどのビルドルールで定義される一般的な属性をご覧ください。
|
resources
|
ラベルのリスト。デフォルトは リソースは、ソースファイルまたは生成ファイルのいずれかです。
リソースが指定されている場合、それらは、コンパイルによって生成された通常の |
add_exports
|
文字列のリスト。デフォルトは module または package へのアクセスを許可します。これは、javac と JVM --add-exports= フラグに対応しています。 |
add_opens
|
文字列のリスト。デフォルトは module または package にリフレクタ的にアクセスできるようにします。これは、javac と JVM --add-opens= フラグに対応します。 |
bootclasspath
|
ラベル(デフォルトは |
generates_api
|
ブール値。デフォルトは ルールが API 生成アノテーション プロセッサを使用する場合、それに依存する他のルールが生成されたコードを参照できるのは、コンパイル アクションが生成ルールの後にスケジュールされている場合のみです。この属性は、--java_header_compilation が有効になっているときにスケジューリング制約を導入するように Bazel に指示します。 警告: この属性はビルドのパフォーマンスに影響します。必要に応じてのみ使用してください。 |
javabuilder_jvm_flags
|
文字列のリスト。デフォルトは |
javacopts
|
文字列のリスト。デフォルトは これらのコンパイラ オプションは、グローバル コンパイラ オプションの後に javac に渡されます。 |
neverlink
|
ブール値。デフォルトは tools.jar などがあります。
ランタイム ライブラリがコンパイル ライブラリと異なる場合は、JLS でコンパイラのインライン化が禁止されている場所でのみ異なることを確認する必要があります(これは、今後の JLS のすべてのバージョンで保持する必要があります)。 |
output_licenses
|
文字列のリスト。デフォルトは |
plugins
|
ラベルのリスト。デフォルトは java_plugin は、このルールがビルドされるたびに実行されます。ライブラリは、exported_plugins を使用する依存関係からプラグインを継承することもできます。プラグインによって生成されたリソースは、このルールの結果として生成される jar に含まれます。 |
processor_class
|
文字列。デフォルトは |
proguard_specs
|
ラベルのリスト。デフォルトは android_binary ターゲットに追加されます。このファイルには、べき等のルール(-dontnote、-dontwarn、assumenosideeffects、-keep で始まるルール)のみを含める必要があります。他のオプションは、重複しないマージを確実に行うために、android_binary の proguard_specs にのみ表示できます。 |
resource_strip_prefix
|
文字列。デフォルトは
指定すると、このパス接頭辞は |
java_runtime
ルールソースを表示java_runtime(name, srcs, compatible_with, default_cds, deprecation, distribs, exec_compatible_with, exec_properties, features, hermetic_srcs, hermetic_static_libs, java, java_home, lib_ct_sym, lib_modules, output_licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, version, visibility)
Java ランタイムの構成を指定します。
例:
java_runtime(
name = "jdk-9-ea+153",
srcs = glob(["jdk9-ea+153/**"]),
java_home = "jdk9-ea+153",
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
srcs
|
ラベルのリスト。デフォルトは |
default_cds
|
ラベル(デフォルトは java_runtime のデフォルトの CDS アーカイブ。java_binary ターゲットでハーメティックが有効になっている場合、java_runtime デフォルトの CDS はハーメティック デプロイ JAR にパッケージ化されます。 |
hermetic_srcs
|
ラベルのリスト。デフォルトは |
hermetic_static_libs
|
ラベルのリスト。デフォルトは |
java
|
ラベル(デフォルトは |
java_home
|
文字列。デフォルトは srcs 属性と java 属性を空にする必要があります。 |
lib_ct_sym
|
ラベル(デフォルトは --release でのコンパイルに必要な lib/ct.sym ファイル。指定されていない場合、srcs にパスが /lib/ct.sym で終わるファイルが 1 つだけある場合は、そのファイルが使用されます。 |
lib_modules
|
ラベル(デフォルトは |
output_licenses
|
文字列のリスト。デフォルトは |
version
|
整数。デフォルトは Runtime.version().feature() から返される整数です。 |
java_single_jar
ルールソースを表示java_single_jar(name, deps, compatible_with, compress, deploy_env, deploy_manifest_lines, deprecation, distribs, exclude_build_data, exec_compatible_with, exec_properties, features, multi_release, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
deps
|
ラベルのリスト。デフォルトは |
compress
|
文字列。デフォルトは |
deploy_env
|
ラベルのリスト。デフォルトは |
deploy_manifest_lines
|
文字列のリスト。デフォルトは META-INF/manifest.mf ファイルに追加する行のリスト。 |
exclude_build_data
|
ブール値。デフォルトは |
multi_release
|
ブール値。デフォルトは |
java_toolchain
ルールソースを表示java_toolchain(name, android_lint_data, android_lint_jvm_opts, android_lint_opts, android_lint_package_configuration, android_lint_runner, bootclasspath, compatible_javacopts, compatible_with, deprecation, deps_checker, distribs, exec_compatible_with, exec_properties, features, forcibly_disable_header_compilation, genclass, header_compiler, header_compiler_builtin_processors, header_compiler_direct, ijar, jacocorunner, java_runtime, javabuilder, javabuilder_data, javabuilder_jvm_opts, javac_supports_multiplex_workers, javac_supports_worker_cancellation, javac_supports_worker_multiplex_sandboxing, javac_supports_workers, javacopts, jspecify_implicit_deps, jspecify_javacopts, jspecify_packages, jspecify_processor, jspecify_processor_class, jspecify_stubs, jvm_opts, licenses, misc, oneversion, oneversion_allowlist, oneversion_allowlist_for_tests, oneversion_whitelist, package_configuration, proguard_allowlister, reduced_classpath_incompatible_processors, restricted_to, singlejar, source_version, tags, target_compatible_with, target_version, testonly, timezone_data, toolchains, tools, turbine_data, turbine_jvm_opts, visibility, xlint)
Java コンパイラの構成を指定します。使用する toolchain は、--java_toolchain 引数で変更できます。通常、Java コンパイラをチューニングする場合を除き、このようなルールは記述しないでください。
例
簡単な例を挙げると、次のようなものです。
java_toolchain(
name = "toolchain",
source_version = "7",
target_version = "7",
bootclasspath = ["//tools/jdk:bootclasspath"],
xlint = [ "classfile", "divzero", "empty", "options", "path" ],
javacopts = [ "-g" ],
javabuilder = ":JavaBuilder_deploy.jar",
)
引数
属性 | |
---|---|
name |
名前: 必須 このターゲットの名前。 |
android_lint_data
|
ラベルのリスト。デフォルトは |
android_lint_jvm_opts
|
文字列のリスト。デフォルトは |
android_lint_opts
|
文字列のリスト。デフォルトは |
android_lint_package_configuration
|
ラベルのリスト。デフォルトは |
android_lint_runner
|
ラベル(デフォルトは |
bootclasspath
|
ラベルのリスト。デフォルトは |
compatible_javacopts
|
null(デフォルトは |
deps_checker
|
ラベル(デフォルトは |
forcibly_disable_header_compilation
|
ブール値。デフォルトは |
genclass
|
ラベル(デフォルトは |
header_compiler
|
ラベル(デフォルトは |
header_compiler_builtin_processors
|
文字列のリスト。デフォルトは |
header_compiler_direct
|
ラベル(デフォルトは このツールは、アノテーション処理をサポートしていません。 |
ijar
|
ラベル(デフォルトは |
jacocorunner
|
ラベル(デフォルトは |
java_runtime
|
ラベル(デフォルトは |
javabuilder
|
ラベル(デフォルトは |
javabuilder_data
|
ラベルのリスト。デフォルトは |
javabuilder_jvm_opts
|
文字列のリスト。デフォルトは |
javac_supports_multiplex_workers
|
ブール値。デフォルトは |
javac_supports_worker_cancellation
|
ブール値。デフォルトは |
javac_supports_worker_multiplex_sandboxing
|
ブール値。デフォルトは |
javac_supports_workers
|
ブール値。デフォルトは |
javacopts
|
文字列のリスト。デフォルトは |
jspecify_implicit_deps
|
ラベル(デフォルトは |
jspecify_javacopts
|
文字列のリスト。デフォルトは |
jspecify_packages
|
ラベルのリスト。デフォルトは |
jspecify_processor
|
ラベル(デフォルトは |
jspecify_processor_class
|
文字列。デフォルトは |
jspecify_stubs
|
ラベルのリスト。デフォルトは |
jvm_opts
|
文字列のリスト。デフォルトは |
misc
|
文字列のリスト。デフォルトは |
oneversion
|
ラベル(デフォルトは |
oneversion_allowlist
|
ラベル(デフォルトは |
oneversion_allowlist_for_tests
|
ラベル(デフォルトは |
oneversion_whitelist
|
ラベル(デフォルトは |
package_configuration
|
ラベルのリスト。デフォルトは |
proguard_allowlister
|
ラベル(デフォルトは |
reduced_classpath_incompatible_processors
|
文字列のリスト。デフォルトは |
singlejar
|
ラベル(デフォルトは |
source_version
|
文字列。デフォルトは |
target_version
|
文字列。デフォルトは |
timezone_data
|
ラベル(デフォルトは |
tools
|
ラベルのリスト。デフォルトは |
turbine_data
|
ラベルのリスト。デフォルトは |
turbine_jvm_opts
|
文字列のリスト。デフォルトは |
xlint
|
文字列のリスト。デフォルトは |