Kurallar
- java_binary
- java_import
- java_library
- java_lite_proto_library
- java_proto_library
- java_test
- java_package_configuration
- java_plugin
- java_runtime
- java_toolchain
java_binary
Kural kaynağını gösterjava_binary(name, deps, srcs, data, resources, args, 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, output_licenses, plugins, resource_jars, resource_strip_prefix, restricted_to, runtime_deps, stamp, tags, target_compatible_with, testonly, toolchains, use_launcher, use_testrunner, visibility)
Kuralla aynı ada sahip bir Java arşivi ("jar dosyası") ve bir sarmalayıcı kabuk komut dosyası oluşturur.
Sarmalayıcı kabuk komut dosyası, diğer özelliklerinin yanı sıra, ikili programın bağlı olduğu her kitaplık için bir jar dosyası içeren bir sınıf yolu kullanır. Sarmalayıcı kabuk komut dosyasını çalıştırırken boş olmayan tüm JAVABIN
ortam değişkenleri, Bazel'in --java_runtime_version
işaretiyle belirtilen sürüme göre öncelikli olur.
Sarmalayıcı komut dosyası, birkaç benzersiz işareti kabul eder. Sarmalayıcı tarafından kabul edilen yapılandırılabilir işaretlerin ve ortam değişkenlerinin listesi için //src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
bölümüne bakın.
Örtülü çıkış hedefleri
name.jar
: İkili programın doğrudan bağımlılıklarına karşılık gelen sınıf dosyalarını ve diğer kaynakları içeren bir Java arşivi.name-src.jar
: Kaynakları içeren bir arşiv ("kaynak jar").name_deploy.jar
: Dağıtım için uygun bir Java arşivi (yalnızca açıkça istenirse oluşturulur).Kuralınız için
<name>_deploy.jar
hedefi oluşturulduğunda, manifest dosyasıyla bağımsız bir jar dosyası oluşturulur. Bu dosya,java -jar
komutuyla veya sarmalayıcı komut dosyasının--singlejar
seçeneğiyle çalıştırılmasına olanak tanır. Sarmalayıcı komut dosyası, aynı zamanda JVM işaretlerini ve yerel kitaplıkları yükleme seçeneklerini de ilettiği içinjava -jar
için tercih edilir.Dağıtım jar dosyası, ikili programın sarmalayıcı komut dosyasından baştan sona sınıf yolunu arayan bir classloader tarafından bulunabilecek tüm sınıfları içerir. Ayrıca bağımlılıklar için gereken yerel kitaplıkları da içerir. Bunlar çalışma zamanında otomatik olarak JVM'ye yüklenir.
Hedefiniz bir başlatıcı özelliği belirtiyorsa _deploy.jar, normal bir JAR dosyası yerine yerel bir ikili program olur. Bu, başlatıcıyı ve kuralınızın yerel (C++) bağımlılıklarını içerir. Bunların tümü statik bir ikili programdadır. Gerçek jar dosyasının baytları bu yerel ikili programına eklenir ve hem yürütülebilir hem de Java kodunu içeren tek bir ikili blob oluşturulur. Oluşturulan jar dosyasını, herhangi bir yerel ikili programı yürütür gibi doğrudan yürütebilirsiniz.
name_deploy-src.jar
: Hedefin geçişli olarak kapatılmasından toplanan kaynakları içeren bir arşiv. Bunlar, jar'ların eşleşen kaynak jar'ı olmadığı durumlar dışındadeploy.jar
içindeki sınıflarla eşleşir.
srcs
içermeyen java_binary
kuralında deps
özelliğine izin verilmez. Böyle bir kural için runtime_deps
tarafından sağlanan bir main_class
gerekir.
Aşağıdaki kod snippet'inde yaygın bir hata gösterilmektedir:
java_binary( name = "DontDoThis", srcs = [ ..., "GeneratedJavaFile.java", # a generated .java file ], deps = [":generating_rule"], # rule that generates that file )
Bunun yerine şunu yapın:
java_binary( name = "DoThisInstead", srcs = [ ..., ":generating_rule", ], )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. Uygulamanın ana giriş noktası olan kaynak dosyanın adını (uzantıyı çıkararak) kullanmak önerilir. Örneğin, giriş noktanız Main.java olarak adlandırılırsa adınız Main olabilir.
|
deps
|
Etiket listesi; varsayılan değer: deps ile ilgili genel yorumları, Çoğu derleme kuralı tarafından tanımlanan genel özellikler bölümünde bulabilirsiniz.
|
srcs
|
Etiket listesi; varsayılan değer:
Kurallar: Kural (genellikle
Bir |
resources
|
Etiket listesi; varsayılan değer:
Kaynaklar belirtilirse bunlar, derleme tarafından üretilen her zamanki Kaynaklar, kaynak dosyalar veya oluşturulmuş dosyalar olabilir. |
classpath_resources
|
Etiket listesi; varsayılan değer:
Java ağacının kök dizininde bulunması gereken kaynakların listesi. Bu özelliğin tek amacı, kaynaklarının sınıf yolunda tam olarak |
create_executable
|
Boole; yapılandırılabilir değil; varsayılan: java_single_jar kullanın.
|
deploy_env
|
Etiket listesi; varsayılan değer: java_binary hedeflerinin listesi.
Başka bir java_binary tarafından yüklenecek bir eklenti oluştururken bu özelliği ayarlayın.Bu özellik ayarlandığında, bu ikili programın çalışma zamanı sınıf yolundan (ve dağıtım jar'ından) bu ikili program ile deploy_env politikasında belirtilen hedefler arasında paylaşılan tüm bağımlılıklar hariç tutulur.
|
deploy_manifest_lines
|
Dize listesi; varsayılan: *_deploy.jar hedefi için oluşturulan META-INF/manifest.mf dosyasına eklenecek satırların listesi. Bu özelliğin içeriği, "Değişken oluştur" değişikliğine tabi değildir.
|
javacopts
|
Dize listesi; varsayılan: Bu derleyici seçenekleri, javac'ye genel derleyici seçeneklerinden sonra geçirilir. |
jvm_flags
|
Dize listesi; varsayılan: Bir Java ikili programı için sarmalayıcı komut dosyası, bir CLASSPATH tanımı içerir (tüm bağımlı jar'ları bulmak için) ve doğru Java yorumlayıcısını çağırır.
Sarmalayıcı komut dosyası tarafından oluşturulan komut satırında, ana sınıfın adı ve ardından Bu özelliğin |
launcher
|
Etiket; varsayılan değer: bin/java programı yerine Java programınızı çalıştırmak için kullanılacak ikili programı belirtin.
Hedef bir cc_binary olmalıdır.
Java Invocation API'yi uygulayan herhangi bir cc_binary , bu özellik için bir değer olarak belirtilebilir.
Varsayılan olarak, Bazel normal JDK başlatıcısını (bin/java veya java.exe) kullanır. İlgili Yerel (C++, SWIG, JNI) bağımlılıklarınızın, JDK başlatıcı veya başka bir başlatıcı kullanmanıza bağlı olarak farklı şekilde oluşturulacağını unutmayın:
Varsayılan JDK başlatıcı dışında bir başlatıcı kullanırken |
main_class
|
Dize; varsayılan değer: main() yöntemine sahip sınıfın adı.
Bir kural bu seçeneği kullanıyorsa srcs=[...] listesine ihtiyaç duymaz.
Dolayısıyla, bu özellik kullanılarak halihazırda bir veya daha fazla main() yöntemi içeren Java kitaplığından yürütülebilir bir dosya oluşturulabilir.
Bu özelliğin değeri kaynak dosya değil, bir sınıf adıdır. Sınıf çalışma zamanında kullanılabilir olmalıdır: Bu kural tarafından derlenmiş ( |
plugins
|
Etiket listesi; varsayılan değer: java_plugin , bu kural her oluşturulduğunda çalıştırılacak. Bir kitaplık, exported_plugins kullanan bağımlılıklardan da eklenti devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın oluşturduğu jar'a dahil edilir.
|
resource_jars
|
Etiket listesi; varsayılan değer: |
resource_strip_prefix
|
Dize; varsayılan değer:
Belirtilirse bu yol ön eki, |
runtime_deps
|
Etiket listesi; varsayılan değer: deps gibi bunlar da çalışma zamanı sınıf yolunda görünür ancak bunların aksine derleme zamanı sınıf yolunda görünmez. Yalnızca çalışma zamanında gereken bağımlılıklar burada listelenmelidir. Bağımlılık analizi araçları, hem runtime_deps hem de deps içinde görünen hedefleri yok saymalıdır.
|
stamp
|
Tam sayı; varsayılan
Damgalı ikili programlar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz. |
use_launcher
|
Boole; varsayılan Bu özellik yanlış değerine ayarlanırsa Başlatıcı özelliği ve ilgili |
use_testrunner
|
Boole; varsayılan com.google.testing.junit.runner.BazelTestRunner ) sınıfını kullanın ve test sınıfını bazel.test_suite sistem özelliğinin değeri olarak test çalıştırıcıya sağlayın.
Bunu, varsayılan davranışı (java_test kuralları için test çalıştırıcıyı kullanmak ve java_binary kuralları için kullanmamak) geçersiz kılmak için kullanabilirsiniz. Büyük olasılıkla bunu yapmak isteyeceksiniz. Bir kullanım, başka bir kural tarafından çağrılan AllTest kuralları içindir (örneğin, testleri çalıştırmadan önce bir veritabanı oluşturmak için). AllTest kuralının java_binary olarak tanımlanması, ancak yine de ana giriş noktası olarak test çalıştırıcısını kullanması gerekir.
Test çalıştırıcı sınıfının adı, main_class özelliğiyle geçersiz kılınabilir.
|
java_import
Kural kaynağını gösterjava_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)
Bu kural, önceden derlenmiş .jar
dosyalarının java_library
ve java_binary
kuralları için kitaplık olarak kullanılmasına olanak tanır.
Örnekler
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",
],
)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan değer: |
data
|
Etiket listesi; varsayılan değer: |
add_exports
|
Dize listesi; varsayılan: module veya package öğesine erişmesine izin verin.
Bu, javac ve JVM --add-exports= işaretlerine karşılık gelir. |
add_opens
|
Dize listesi; varsayılan: module veya package öğesine yansıtıcı olarak erişmesine izin verin.
Bu, javac ve JVM --add-opens= işaretlerine karşılık gelir. |
constraints
|
Dize listesi; varsayılan: |
exports
|
Etiket listesi; varsayılan değer: |
jars
|
Etiket listesi; zorunlu Bu hedefe bağlı Java hedeflerine sağlanan JAR dosyalarının listesi. |
neverlink
|
Boole; varsayılan tools.jar verilebilir.
|
proguard_specs
|
Etiket listesi; varsayılan değer: android_binary hedeflerine eklenirler.
Burada yer alan dosyalarda yalnızca -dontnote, -dontwarn,
assumenosideeffects ve -keep ile başlayan kurallar olmalıdır. Diğer seçenekler, ttolojik olmayan birleştirmeleri sağlamak için yalnızca
android_binary 'in ProGuard_specs bölümünde görünebilir.
|
runtime_deps
|
Etiket listesi; varsayılan değer: |
srcjar
|
Etiket; varsayılan değer: |
java_library
Kural kaynağını gösterjava_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)
Bu kural, kaynakları derler ve bir .jar
dosyası olarak bağlar.
Örtülü çıkışlar
libname.jar
: Sınıf dosyalarını içeren bir Java arşivi.libname-src.jar
: Kaynakları içeren bir arşiv ("kaynak jar").
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan değer: deps ile ilgili genel yorumlara göz atın.
Buna karşılık, |
srcs
|
Etiket listesi; varsayılan değer:
Kurallar: Kural (genellikle
Yukarıda açıklanan dosya türünde en az bir dosya bulunduğu sürece diğer tüm dosyalar yoksayılır. Aksi takdirde bir hata verilir.
Bu bağımsız değişken, |
data
|
Etiket listesi; varsayılan değer: data ile ilgili genel yorumlara göz atın.
Bir |
resources
|
Etiket listesi; varsayılan değer: Kaynaklar, kaynak dosyalar veya oluşturulmuş dosyalar olabilir.
Kaynaklar belirtilirse bunlar, derleme tarafından üretilen her zamanki |
add_exports
|
Dize listesi; varsayılan: module veya package öğesine erişmesine izin verin.
Bu, javac ve JVM --add-exports= işaretlerine karşılık gelir. |
add_opens
|
Dize listesi; varsayılan: module veya package öğesine yansıtıcı olarak erişmesine izin verin.
Bu, javac ve JVM --add-opens= işaretlerine karşılık gelir. |
bootclasspath
|
Etiket; varsayılan değer: |
exported_plugins
|
Etiket listesi; varsayılan değer: java_plugin (ör. ek açıklama işlemcileri) listesi.
Belirtilen |
exports
|
Etiket listesi; varsayılan değer:
Burada listeleme kuralları, üst kurallar bu kurallara açıkça bağımlıymış gibi bunları üst kuralların kullanımına sunar. Bu, normal (dışa aktarılmayan)
Özet: X kuralı, aralarında
A'nın B'ye, B'nin ise C'ye bağlı olduğunu varsayalım. Bu durumda C, A'nın geçişli bir bağımlılığıdır. Dolayısıyla C'nin kaynaklarını değiştirip A'nın yeniden oluşturulması her şeyi doğru şekilde yeniden oluşturur. Ancak A, C'deki sınıfları kullanamaz. Buna imkan tanımak için A'nın Dışa aktarılan kitaplıkların tamamı doğrudan üst kurallar tarafından kapatılabilir. Biraz farklı bir örneği ele alalım: A, B'ye bağlıdır; B, C ve D'ye bağlıdır ve ayrıca C'yi dışa aktarır ancak D'yi dışa aktarmaz. A'nın C'ye erişimi vardır ancak D'ye erişemez. Şimdi, C ve D bazı kitaplıkları, yani C' ve D'yi dışa aktardığında A yalnızca C'ye erişebilirken D'ye erişemez.
Önemli: Dışa aktarılan bir kural normal bir bağımlılık değildir. Önceki örneğe göre, B, C'yi dışa aktarıyor ve C'yi de kullanmak istiyorsa bunu kendi |
javabuilder_jvm_flags
|
Dize listesi; varsayılan: |
javacopts
|
Dize listesi; varsayılan: Bu derleyici seçenekleri, javac'ye genel derleyici seçeneklerinden sonra geçirilir. |
neverlink
|
Boole; varsayılan tools.jar verilebilir.
Çalışma zamanı kitaplığı, derleme kitaplığından farklıysa yalnızca JLS'nin derleyicilerin satır içi yapmasına izin vermediği (ve JLS'nin gelecekteki tüm sürümleri için geçerli olması gereken) yerlerde farklı olduğundan emin olmanız gerekir. |
plugins
|
Etiket listesi; varsayılan değer: java_plugin , bu kural oluşturulduğunda çalıştırılacaktır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan da eklenti devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın sonuç jar dosyasına dahil edilir.
|
proguard_specs
|
Etiket listesi; varsayılan değer: android_binary hedeflerine eklenirler.
Burada yer alan dosyalarda yalnızca -dontnote, -dontwarn,
assumenosideeffects ve -keep ile başlayan kurallar bulunur. Diğer seçenekler, ttolojik olmayan birleştirmeleri sağlamak için yalnızca
android_binary 'in ProGuard_specs bölümünde görünebilir.
|
resource_strip_prefix
|
Dize; varsayılan değer:
Belirtilirse bu yol ön eki, |
runtime_deps
|
Etiket listesi; varsayılan değer: deps gibi bunlar da çalışma zamanı sınıf yolunda görünür, ancak bunların aksine derleme zamanı sınıf yolunda görünmez. Yalnızca çalışma zamanında gereken bağımlılıklar burada listelenmelidir. Bağımlılık analizi araçları hem runtime_deps hem de deps içinde görünen hedefleri yok saymalıdır.
|
java_lite_proto_library
Kural kaynağını gösterjava_lite_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_lite_proto_library
, .proto
dosyadan Java kodu oluşturur.
deps
, proto_library
kurallarına işaret etmelidir.
Örnek:
java_library(
name = "lib",
runtime_deps = [":foo"],
)
java_lite_proto_library(
name = "foo",
deps = [":bar"],
)
proto_library(
name = "bar",
)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan değer: proto_library kurallarının listesi.
|
java_proto_library
Kural kaynağını gösterjava_proto_library(name, deps, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
java_proto_library
, .proto
dosyadan Java kodu oluşturur.
deps
, proto_library
kurallarına işaret etmelidir.
Örnek:
java_library(
name = "lib",
runtime_deps = [":foo_java_proto"],
)
java_proto_library(
name = "foo_java_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan değer: proto_library kurallarının listesi.
|
java_test
Kural kaynağını gösterjava_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()
kuralı bir Java testi derler. Test, test kodunuzun çevresindeki bir ikili sarmalayıcıdır. Derlenen ana sınıf yerine test çalıştırıcının ana yöntemi çağrılır.
Örtülü çıkış hedefleri
name.jar
: Bir Java arşivi.name_deploy.jar
: Dağıtım için uygun bir Java arşivi. (Yalnızca açıkça istenirse oluşturulur.) Daha fazla ayrıntı için java_binary kodundakiname_deploy.jar
çıkışının açıklamasına bakın.
java_binary()
bağımsız değişkenleriyle ilgili bölüme bakın. Bu kural, tüm test kurallarında ortak olan tüm özellikleri (*_test) de destekler.
Örnekler
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",
],
)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan değer: deps ile ilgili genel yorumlara göz atın.
|
srcs
|
Etiket listesi; varsayılan değer:
Kurallar: Kural (genellikle
Bir |
data
|
Etiket listesi; varsayılan değer: data ile ilgili genel yorumları, Çoğu derleme kuralı tarafından tanımlanan genel özellikler bölümünde bulabilirsiniz.
|
resources
|
Etiket listesi; varsayılan değer: Kaynaklar, kaynak dosyalar veya oluşturulmuş dosyalar olabilir.
Kaynaklar belirtilirse bunlar, derleme tarafından üretilen her zamanki |
add_exports
|
Dize listesi; varsayılan: module veya package öğesine erişmesine izin verin.
Bu, javac ve JVM --add-exports= işaretlerine karşılık gelir. |
add_opens
|
Dize listesi; varsayılan: module veya package öğesine yansıtıcı olarak erişmesine izin verin.
Bu, javac ve JVM --add-opens= işaretlerine karşılık gelir. |
bootclasspath
|
Etiket; varsayılan değer: |
classpath_resources
|
Etiket listesi; varsayılan değer:
Java ağacının kök dizininde bulunması gereken kaynakların listesi. Bu özelliğin tek amacı, kaynaklarının sınıf yolunda tam olarak |
create_executable
|
Boole; varsayılan java_single_jar kullanın.
|
deploy_manifest_lines
|
Dize listesi; varsayılan: *_deploy.jar hedefi için oluşturulan META-INF/manifest.mf dosyasına eklenecek satırların listesi. Bu özelliğin içeriği, "Değişken oluştur" değişikliğine tabi değildir.
|
javacopts
|
Dize listesi; varsayılan: Bu derleyici seçenekleri, javac'ye genel derleyici seçeneklerinden sonra geçirilir. |
jvm_flags
|
Dize listesi; varsayılan: Bir Java ikili programı için sarmalayıcı komut dosyası, bir CLASSPATH tanımı içerir (tüm bağımlı jar'ları bulmak için) ve doğru Java yorumlayıcısını çağırır.
Sarmalayıcı komut dosyası tarafından oluşturulan komut satırında, ana sınıfın adı ve ardından Bu özelliğin |
launcher
|
Etiket; varsayılan değer: bin/java programı yerine Java programınızı çalıştırmak için kullanılacak ikili programı belirtin.
Hedef bir cc_binary olmalıdır.
Java Invocation API'yi uygulayan herhangi bir cc_binary , bu özellik için bir değer olarak belirtilebilir.
Varsayılan olarak, Bazel normal JDK başlatıcısını (bin/java veya java.exe) kullanır. İlgili Yerel (C++, SWIG, JNI) bağımlılıklarınızın, JDK başlatıcıyı mı yoksa başka bir başlatıcıyı mı kullandığınıza bağlı olarak farklı şekilde derleneceğini unutmayın:
Varsayılan JDK başlatıcı dışında bir başlatıcı kullanırken |
main_class
|
Dize; varsayılan değer: main() yöntemine sahip sınıfın adı.
Bir kural bu seçeneği kullanıyorsa srcs=[...] listesine ihtiyaç duymaz.
Dolayısıyla, bu özellikle, zaten bir veya daha fazla main() yöntemi içeren bir Java kitaplığından yürütülebilir bir dosya oluşturulabilir.
Bu özelliğin değeri kaynak dosya değil, bir sınıf adıdır. Sınıf çalışma zamanında kullanılabilir olmalıdır: Bu kural tarafından derlenmiş ( |
neverlink
|
Boole; varsayılan |
plugins
|
Etiket listesi; varsayılan değer: java_plugin , bu kural oluşturulduğunda çalıştırılacaktır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan da eklenti devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın sonuç jar dosyasına dahil edilir.
|
resource_strip_prefix
|
Dize; varsayılan değer:
Belirtilirse bu yol ön eki, |
runtime_deps
|
Etiket listesi; varsayılan değer: deps gibi bunlar da çalışma zamanı sınıf yolunda görünür, ancak bunların aksine derleme zamanı sınıf yolunda görünmez. Yalnızca çalışma zamanında gereken bağımlılıklar burada listelenmelidir. Bağımlılık analizi araçları hem runtime_deps hem de deps içinde görünen hedefleri yok saymalıdır.
|
stamp
|
Tam sayı; varsayılan
Damgalı ikili programlar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz. |
test_class
|
Dize; varsayılan değer:
Varsayılan olarak, bu bağımsız değişken tanımlanmamışsa eski mod kullanılır ve bunun yerine test bağımsız değişkenleri kullanılır.
Bu özellik, bu test tarafından çalıştırılacak Java sınıfının adını belirtir. Bu ayarın ayarlanması nadiren gerekir. Bu bağımsız değişken atlanırsa hedefin
JUnit3 için test sınıfının
Bu özellik, birkaç |
use_launcher
|
Boole; varsayılan Bu özellik false (yanlış) değerine ayarlanırsa Başlatıcı özelliği ve ilgili |
use_testrunner
|
Boole; varsayılan com.google.testing.junit.runner.BazelTestRunner ) sınıfını kullanın ve test sınıfını bazel.test_suite sistem özelliğinin değeri olarak test çalıştırıcıya sağlayın.
Bu ayarı, test çalıştırıcıyı java_test kuralları için kullanma ve java_binary kuralları için kullanmama şeklindeki varsayılan davranışı geçersiz kılmak için kullanabilirsiniz. Büyük olasılıkla bunu yapmak
isteyeceksinizdir. Bir kullanım, başka bir kural tarafından çağrılan AllTest kuralları içindir (örneğin, testleri çalıştırmadan önce bir veritabanı oluşturmak için). AllTest kuralı java_binary olarak tanımlanmalıdır, ancak ana giriş noktası olarak test çalıştırıcıyı kullanmaya devam etmelidir.
Test çalıştırıcı sınıfının adı, main_class özelliğiyle geçersiz kılınabilir.
|
java_package_configuration
Kural kaynağını gösterjava_package_configuration(name, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, javacopts, output_licenses, packages, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
Bir paket grubuna uygulanacak yapılandırma.
Yapılandırmalar java_toolchain.javacopts
alanlarına eklenebilir.
Örnek:
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",
]
)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
data
|
Etiket listesi; varsayılan değer: |
javacopts
|
Dize listesi; varsayılan: |
output_licenses
|
Dize listesi; varsayılan: |
packages
|
Etiket listesi; varsayılan değer: package_group grubu.
|
java_plugin
Kural kaynağını gösterjava_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 tarafından çalıştırılan Java derleyicisi için eklentileri tanımlar. Şu anda desteklenen tek eklenti türü ek açıklama işlemcileridir. java_library
veya java_binary
kuralı, plugins
özelliği aracılığıyla eklentilere bağlı olarak çalıştırabilir. Ayrıca java_library
, exported_plugins
yardımıyla eklentileri doğrudan ona bağlı olan kitaplıklara otomatik olarak aktarabilir.
Örtülü çıkış hedefleri
libname.jar
: Bir Java arşivi.
Bağımsız değişkenler, processor_class
bağımsız değişkeninin eklenmesi dışında java_library
ile aynıdır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan değer: deps ile ilgili genel yorumlara göz atın.
Buna karşılık, |
srcs
|
Etiket listesi; varsayılan değer:
Kurallar: Kural (genellikle
Yukarıda açıklanan dosya türünde en az bir dosya bulunduğu sürece diğer tüm dosyalar yoksayılır. Aksi takdirde bir hata verilir.
Bu bağımsız değişken, |
data
|
Etiket listesi; varsayılan değer: data ile ilgili genel yorumlara göz atın.
Bir |
resources
|
Etiket listesi; varsayılan değer: Kaynaklar, kaynak dosyalar veya oluşturulmuş dosyalar olabilir.
Kaynaklar belirtilirse bunlar, derleme tarafından üretilen her zamanki |
add_exports
|
Dize listesi; varsayılan: module veya package öğesine erişmesine izin verin.
Bu, javac ve JVM --add-exports= işaretlerine karşılık gelir. |
add_opens
|
Dize listesi; varsayılan: module veya package öğesine yansıtıcı olarak erişmesine izin verin.
Bu, javac ve JVM --add-opens= işaretlerine karşılık gelir. |
bootclasspath
|
Etiket; varsayılan değer: |
generates_api
|
Boole; varsayılan Bir kural API oluşturan bir ek açıklama işlemcisi kullanıyorsa bu işleme bağlı olan diğer kurallar, yalnızca derleme işlemleri oluşturma kuralından sonra programlanmışsa oluşturulan koda referans verebilir. Bu özellik, Bazel'a java_header_compilation etkinleştirildiğinde zamanlama kısıtlamaları getirmesini söyler. UYARI: Bu özellik, derleme performansını etkiler. Yalnızca gerekli olduğunda kullanın. |
javabuilder_jvm_flags
|
Dize listesi; varsayılan: |
javacopts
|
Dize listesi; varsayılan: Bu derleyici seçenekleri, javac'ye genel derleyici seçeneklerinden sonra geçirilir. |
neverlink
|
Boole; varsayılan tools.jar verilebilir.
Çalışma zamanı kitaplığı, derleme kitaplığından farklıysa yalnızca JLS'nin derleyicilerin satır içi yapmasına izin vermediği (ve JLS'nin gelecekteki tüm sürümleri için geçerli olması gereken) yerlerde farklı olduğundan emin olmanız gerekir. |
output_licenses
|
Dize listesi; varsayılan: |
plugins
|
Etiket listesi; varsayılan değer: java_plugin , bu kural oluşturulduğunda çalıştırılacaktır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan da eklenti devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın sonuç jar dosyasına dahil edilir.
|
processor_class
|
Dize; varsayılan değer: |
proguard_specs
|
Etiket listesi; varsayılan değer: android_binary hedeflerine eklenirler.
Burada yer alan dosyalarda yalnızca -dontnote, -dontwarn,
assumenosideeffects ve -keep ile başlayan kurallar olmalıdır. Diğer seçenekler, ttolojik olmayan birleştirmeleri sağlamak için yalnızca
android_binary 'in ProGuard_specs bölümünde görünebilir.
|
resource_strip_prefix
|
Dize; varsayılan değer:
Belirtilirse bu yol ön eki, |
java_runtime
Kural kaynağını gösterjava_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 çalışma zamanının yapılandırmasını belirtir.
Örnek:
java_runtime(
name = "jdk-9-ea+153",
srcs = glob(["jdk9-ea+153/**"]),
java_home = "jdk9-ea+153",
)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
srcs
|
Etiket listesi; varsayılan değer: |
default_cds
|
Etiket; varsayılan değer: java_runtime için varsayılan CDS arşivi. Bir java_binary hedefi için hermetik etkinleştirildiğinde ve hedef, classlist özelliğini belirterek kendi CDS arşivini sağlamıyorsa java_runtime varsayılan CDS, hermetik dağıtım JAR'ında paketlenir.
|
hermetic_srcs
|
Etiket listesi; varsayılan değer: |
hermetic_static_libs
|
Etiket listesi; varsayılan değer: |
java
|
Etiket; varsayılan değer: |
java_home
|
Dize; varsayılan değer: srcs ve java özellikleri boş olmalıdır.
|
lib_ct_sym
|
Etiket; varsayılan değer: --release ile derleme için gereken lib/ct.sym dosyası. Belirtilmezse ve srcs bölgesinde yolu /lib/ct.sym ile biten tam olarak bir dosya varsa bu dosya kullanılır.
|
lib_modules
|
Etiket; varsayılan değer: |
output_licenses
|
Dize listesi; varsayılan: |
version
|
Tam sayı; varsayılan Runtime.version().feature() tarafından döndürülen tam sayı.
|
java_toolchain
Kural kaynağını gösterjava_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_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 derleyicisinin yapılandırmasını belirtir. Kullanılacak araç zinciri, --java_toolchain bağımsız değişkeniyle değiştirilebilir. Normalde, Java derleyicinizi ayarlamak istemiyorsanız bu tür kurallar yazmamalısınız.
Örnekler
Aşağıda basit bir örnek verilmiştir:
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",
)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
android_lint_data
|
Etiket listesi; varsayılan değer: |
android_lint_jvm_opts
|
Dize listesi; varsayılan: |
android_lint_opts
|
Dize listesi; varsayılan: |
android_lint_package_configuration
|
Etiket listesi; varsayılan değer: |
android_lint_runner
|
Etiket; varsayılan değer: |
bootclasspath
|
Etiket listesi; varsayılan değer: |
compatible_javacopts
|
null; default is |
deps_checker
|
Etiket; varsayılan değer: |
forcibly_disable_header_compilation
|
Boole; varsayılan |
genclass
|
Etiket; varsayılan değer: |
header_compiler
|
Etiket; varsayılan değer: |
header_compiler_builtin_processors
|
Dize listesi; varsayılan: |
header_compiler_direct
|
Etiket; varsayılan değer: Bu araç ek açıklama işlemeyi desteklemez. |
ijar
|
Etiket; varsayılan değer: |
jacocorunner
|
Etiket; varsayılan değer: |
java_runtime
|
Etiket; varsayılan değer: |
javabuilder
|
Etiket; varsayılan değer: |
javabuilder_data
|
Etiket listesi; varsayılan değer: |
javabuilder_jvm_opts
|
Dize listesi; varsayılan: |
javac_supports_multiplex_workers
|
Boole; varsayılan |
javac_supports_worker_cancellation
|
Boole; varsayılan |
javac_supports_worker_multiplex_sandboxing
|
Boole; varsayılan |
javac_supports_workers
|
Boole; varsayılan |
javacopts
|
Dize listesi; varsayılan: |
jspecify_implicit_deps
|
Etiket; varsayılan değer: |
jspecify_javacopts
|
Dize listesi; varsayılan: |
jspecify_packages
|
Etiket listesi; varsayılan değer: |
jspecify_processor
|
Etiket; varsayılan değer: |
jspecify_processor_class
|
Dize; varsayılan değer: |
jspecify_stubs
|
Etiket listesi; varsayılan değer: |
jvm_opts
|
Dize listesi; varsayılan: |
misc
|
Dize listesi; varsayılan: |
oneversion
|
Etiket; varsayılan değer: |
oneversion_allowlist_for_tests
|
Etiket; varsayılan değer: |
oneversion_whitelist
|
Etiket; varsayılan değer: |
package_configuration
|
Etiket listesi; varsayılan değer: |
proguard_allowlister
|
Etiket; varsayılan değer: |
reduced_classpath_incompatible_processors
|
Dize listesi; varsayılan: |
singlejar
|
Etiket; varsayılan değer: |
source_version
|
Dize; varsayılan değer: |
target_version
|
Dize; varsayılan değer: |
timezone_data
|
Etiket; varsayılan değer: |
tools
|
Etiket listesi; varsayılan değer: |
turbine_data
|
Etiket listesi; varsayılan değer: |
turbine_jvm_opts
|
Dize listesi; varsayılan: |
xlint
|
Dize listesi; varsayılan: |