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)
Bir Java arşivi ("jar dosyası") ve kuralla aynı ada sahip 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 sınıf yolu kullanır. Sarmalayıcı kabuk komut dosyası çalıştırılı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.
Dolaylı çı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ıma uygun bir Java arşivi (yalnızca açıkça talep edildiğinde oluşturulur).Kuralınız için
<name>_deploy.jar
hedefi derlediğinizde, dosyanınjava -jar
komutuyla veya sarmalayıcı komut dosyasının--singlejar
seçeneğiyle çalıştırılmasına izin veren bir manifest içeren bağımsız bir jar dosyası oluşturulur.java -jar
, JVM işaretlerini ve yerel kitaplıkları yükleme seçeneklerini de ilettiği için sarmalayıcı komut dosyasının kullanılması tercih edilir.Dağıtım deposu, sınıf yolunu ikili programın sarmalayıcı komut dosyasından sonuna kadar arayan bir sınıf yükleyici 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. Bu bağımlılıkların tümü, statik bir ikili program kapsamındadır. Gerçek jar dosyasının baytları bu yerel ikili programa eklenerek 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 çalıştırabilirsiniz.
name_deploy-src.jar
: Hedefin geçişli olarak kapatılmasından toplanan kaynakları içeren bir arşiv. Bunlar, jar'larla eşleşen kaynak jar'ın olmadığı durumlar dışındadeploy.jar
içindeki sınıflarla eşleşir.
srcs
içermeyen bir java_binary
kuralında deps
özelliğine izin verilmez. Bu tür 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; gerekli Bu hedef için benzersiz bir ad. Uygulamanın ana giriş noktası olan (uzantı hariç) kaynak dosyanın adını kullanmanız önerilir. Örneğin, giriş noktanızın adı Main.java ise adınız Main olabilir.
|
deps
|
Etiket listesi; varsayılan deps ile ilgili genel yorumlara göz atın.
|
srcs
|
Etiket listesi; varsayılan
Kurallar: Kural (genellikle
Bu bağımsız değişken, bir |
resources
|
Etiket listesi; varsayılan
Kaynaklar belirtilirse, derleme tarafından üretilen normal Kaynaklar, kaynak dosyalar veya oluşturulan dosyalar olabilir. |
classpath_resources
|
Etiket listesi; varsayılan
Java ağacının kökünde 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ılmamış; varsayılan değer java_single_jar politikasını kullanın.
|
deploy_env
|
Etiket listesi; varsayılan java_binary hedeflerinin listesi.
Başka bir java_binary tarafından yüklenecek bir eklenti oluştururken bu özelliği ayarlayın.Bu özelliğin ayarlanması, bu ikili programın çalışma zamanı sınıf yolundan (ve dağıtım jar'ından) ve bu ikili program ile deploy_env politikasında belirtilen hedefler arasında paylaşılan tüm bağımlılıkları hariç tutar.
|
deploy_manifest_lines
|
Dize listesi; varsayılan değer: *_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 yap" değişikliğine tabi değildir.
|
javacopts
|
Dize listesi; varsayılan değer: Bu derleyici seçenekleri, genel derleyici seçeneklerinden sonra javac'a iletilir. |
jvm_flags
|
Dize listesi; varsayılan değer: 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ı, ana sınıfın adını ve ardından bir Bu özelliğin |
launcher
|
Etiket; varsayılan değer bin/java programı yerine Java programınızı çalıştırmak için kullanılacak bir 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ıyı (bin/Java veya java.exe) kullanır. İlgili JDK başlatıcıyı mı yoksa başka bir başlatıcıyı mı kullandığınıza bağlı olarak yerel (C++, SWIG, JNI) bağımlılıklarınızın farklı şekilde oluşturulacağını unutmayın:
Varsayılan JDK başlatıcı dışında herhangi bir başlatıcı kullanılı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.
Böylece, bu özellikle 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 bir kaynak dosya değil, sınıf adıdır. Sınıf, çalışma zamanında kullanılabilir olmalıdır: Bu kural tarafından ( |
plugins
|
Etiket listesi; varsayılan java_plugin , bu kural oluşturulduğunda çalışır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan eklentiler de devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın ortaya çıkan jar dosyasına dahil edilir.
|
resource_jars
|
Etiket listesi; varsayılan |
resource_strip_prefix
|
Dize; varsayılan değer
Belirtilirse bu yol ön eki, |
runtime_deps
|
Etiket listesi; varsayılan deps gibi bu komutlar da çalışma zamanı sınıf yolunda görünür ancak bunlardan farklı olarak 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 yoksaymalıdır.
|
stamp
|
Tam sayı; varsayılan değer
Bağımlılıkları değişmediği sürece damgalı ikili programlar yeniden oluşturulmaz. |
use_launcher
|
Boole; varsayılan değer Bu özellik false (yanlış) değerine ayarlanırsa Başlatıcı özelliği ve ilgili |
use_testrunner
|
Boole; varsayılan değer com.google.testing.junit.runner.BazelTestRunner ) sınıfını kullanın ve test sınıfını test çalıştırıcıya bazel.test_suite sistem özelliğinin değeri olarak sağlayın.
Bunu varsayılan davranışı (java_test kuralları için test çalıştırıcısı ile java_binary kurallarında kullanmamak) geçersiz kılmak için kullanabilirsiniz. Bunu yapmak istemeyeceksiniz. 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ı ancak yine de test çalıştırıcıyı ana giriş noktası olarak kullanmalıdır.
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, 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, visibility)
Bu kural, önceden derlenmiş .jar
dosyalarının java_library
ve java_binary
kuralları için kitaplık olarak kullanılmasına izin verir.
Ö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; gerekli Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan |
constraints
|
Dize listesi; yapılandırılabilir olmayan; varsayılan |
exports
|
Etiket listesi; varsayılan |
jars
|
Etiket listesi; zorunlu Bu hedefe bağlı Java hedeflerine sağlanan JAR dosyalarının listesi. |
neverlink
|
Boole; varsayılan değer tools.jar verilebilir.
|
proguard_specs
|
Etiket listesi; varsayılan android_binary hedefine eklenir.
Buraya dahil edilen dosyaların yalnızca idempotent kuralları, yani -dontnote, -dontwarn, kindnosideeffects ve -keep ile başlayan kuralları olmalıdır. Diğer seçenekler, totoolojik olmayan birleştirmeleri sağlamak için yalnızca android_binary proGuard_specs içinde görünebilir.
|
runtime_deps
|
Etiket listesi; varsayılan |
srcjar
|
Etiket; varsayılan değer |
java_library
Kural kaynağını gösterjava_library(name, deps, srcs, data, resources, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, exported_plugins, exports, features, javacopts, licenses, neverlink, plugins, proguard_specs, resource_jars, resource_strip_prefix, restricted_to, runtime_deps, tags, target_compatible_with, testonly, visibility)
Bu kural, kaynakları bir .jar
dosyasında derler ve bağlar.
Dolaylı çıkış hedefleri
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; gerekli Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan deps ile ilgili genel yorumlara göz atın.
Buna karşılık |
srcs
|
Etiket listesi; varsayılan
Kurallar: Kural (genellikle
Bu bağımsız değişken, bir |
data
|
Etiket listesi; varsayılan data ile ilgili genel yorumlara göz atın.
|
resources
|
Etiket listesi; varsayılan
Kaynaklar belirtilirse, derleme tarafından üretilen normal Kaynaklar, kaynak dosyalar veya oluşturulan dosyalar olabilir. |
exported_plugins
|
Etiket listesi; varsayılan java_plugin 'lerin (ör. ek açıklama işlemcileri) listesi.
Belirtilen |
exports
|
Etiket listesi; varsayılan
Burada listeleme kuralları, üst kurallar bu kurallara açık bir şekilde bağlıymış gibi bu kuralları üst kurallarda kullanılabilir hale getirir. 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 varsayın. 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'yı yeniden oluşturmak her şeyi doğru şekilde yeniden oluşturur. Ancak A, C sınıfındaki sınıfları kullanamaz. Bunu sağlamak için ya A'nın Dışa aktarılan kitaplıklar, tüm doğrudan üst kurallar tarafından kapatılabilir. Biraz farklı bir örnek ele alalım: A, B'ye bağlıdır, B, C ve D'ye bağlıdır ve C'yi de dışa aktarır ancak D'yi dışa aktarmaz. Artık A, C'ye erişebilir ancak D'ye erişemez. Bu durumda, C ve D bazı kitaplıkları dışa aktardıysa, sırasıyla C' ve D'yi dışa aktardığında A yalnızca C'ye erişebilir, D'ye erişemez.
Önemli: Dışa aktarılan kurallar normal bir bağımlılık değildir. Önceki örneğe devam edersek B, C'yi dışa aktarır ve C'yi de kullanmak isterse bunu kendi |
javacopts
|
Dize listesi; varsayılan değer: Bu derleyici seçenekleri, genel derleyici seçeneklerinden sonra javac'a iletilir. |
neverlink
|
Boole; varsayılan değer tools.jar verilebilir.
Çalışma zamanı kitaplığı, derleme kitaplığından farklıysa yalnızca JLS'nin derleyicilerin satır içi olmasını engellediği (ve JLS'nin gelecekteki tüm sürümleri için geçerli olması gereken) yerlerde farklı olduğundan emin olmalısınız. |
plugins
|
Etiket listesi; varsayılan java_plugin , bu kural oluşturulduğunda çalışır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan eklentiler de devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın ortaya çıkan jar dosyasına dahil edilir.
|
proguard_specs
|
Etiket listesi; varsayılan android_binary hedefine eklenir.
Buraya dahil edilen dosyaların yalnızca idempotent kuralları, yani -dontnote, -dontwarn, kindnosideeffects ve -keep ile başlayan kuralları olmalıdır. Diğer seçenekler, totoolojik olmayan birleştirmeleri sağlamak için yalnızca android_binary proGuard_specs içinde görünebilir.
|
resource_jars
|
Etiket listesi; varsayılan |
resource_strip_prefix
|
Dize; varsayılan değer
Belirtilirse bu yol ön eki, |
runtime_deps
|
Etiket listesi; varsayılan deps gibi bu komutlar da çalışma zamanı sınıf yolunda görünür ancak bunlardan farklı olarak 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 yoksaymalıdır.
|
java_lite_proto_library
Kural kaynağını gösterjava_lite_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
java_lite_proto_library
, .proto
dosyadan Java kodu oluşturur.
deps
, proto_library
kuralına işaret etmelidir.
Örnek:
java_library( name = "lib", deps = [":foo"], ) java_lite_proto_library( name = "foo", deps = [":bar"], ) proto_library( name = "bar", )
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; gerekli Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan proto_library kurallarının listesi.
|
java_proto_library
Kural kaynağını gösterjava_proto_library(name, deps, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
java_proto_library
, .proto
dosyadan Java kodu oluşturur.
deps
, proto_library
kuralına işaret etmelidir.
Örnek:
java_library( name = "lib", 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; gerekli Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan proto_library kurallarının listesi.
|
java_test
Kural kaynağını gösterjava_test(name, deps, srcs, data, resources, args, 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, plugins, resource_jars, 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 etrafında kullanılan bir ikili sarmalayıcıdır. Derlenmekte olan ana sınıf yerine test çalıştırıcının ana yöntemi çağrılır.
Dolaylı çıkış hedefleri
name.jar
: Bir Java arşivi.name_deploy.jar
: Dağıtıma uygun bir Java arşivi. (Yalnızca açıkça talep edildiğinde oluşturulur.) Daha fazla bilgi için java_binary öğesindekiname_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; gerekli Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan deps ile ilgili genel yorumlara göz atın.
|
srcs
|
Etiket listesi; varsayılan
Kurallar: Kural (genellikle
Bu bağımsız değişken, bir |
resources
|
Etiket listesi; varsayılan
Kaynaklar belirtilirse, derleme tarafından üretilen normal Kaynaklar, kaynak dosyalar veya oluşturulan dosyalar olabilir. |
classpath_resources
|
Etiket listesi; varsayılan
Java ağacının kökünde 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ılmamış; varsayılan değer java_single_jar politikasını kullanın.
|
deploy_manifest_lines
|
Dize listesi; varsayılan değer: *_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 yap" değişikliğine tabi değildir.
|
javacopts
|
Dize listesi; varsayılan değer: Bu derleyici seçenekleri, genel derleyici seçeneklerinden sonra javac'a iletilir. |
jvm_flags
|
Dize listesi; varsayılan değer: 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ı, ana sınıfın adını ve ardından bir Bu özelliğin |
launcher
|
Etiket; varsayılan değer bin/java programı yerine Java programınızı çalıştırmak için kullanılacak bir 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ıyı (bin/Java veya java.exe) kullanır. İlgili JDK başlatıcıyı mı yoksa başka bir başlatıcıyı mı kullandığınıza bağlı olarak yerel (C++, SWIG, JNI) bağımlılıklarınızın farklı şekilde oluşturulacağını unutmayın:
Varsayılan JDK başlatıcı dışında herhangi bir başlatıcı kullanılı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.
Böylece, bu özellikle 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 bir kaynak dosya değil, sınıf adıdır. Sınıf, çalışma zamanında kullanılabilir olmalıdır: Bu kural tarafından ( |
plugins
|
Etiket listesi; varsayılan java_plugin , bu kural oluşturulduğunda çalışır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan eklentiler de devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın ortaya çıkan jar dosyasına dahil edilir.
|
resource_jars
|
Etiket listesi; varsayılan |
resource_strip_prefix
|
Dize; varsayılan değer
Belirtilirse bu yol ön eki, |
runtime_deps
|
Etiket listesi; varsayılan deps gibi bu komutlar da çalışma zamanı sınıf yolunda görünür ancak bunlardan farklı olarak 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 yoksaymalıdır.
|
stamp
|
Tam sayı; varsayılan değer
Bağımlılıkları değişmediği sürece damgalı ikili programlar 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 bir Java sınıfının adını belirtir. Bunun 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 değer Bu özellik false (yanlış) değerine ayarlanırsa Başlatıcı özelliği ve ilgili |
use_testrunner
|
Boole; varsayılan değer com.google.testing.junit.runner.BazelTestRunner ) sınıfını kullanın ve test sınıfını test çalıştırıcıya bazel.test_suite sistem özelliğinin değeri olarak sağlayın.
Bunu varsayılan davranışı (java_test kuralları için test çalıştırıcısı ile java_binary kurallarında kullanmamak) geçersiz kılmak için kullanabilirsiniz. Bunu yapmak istemeyeceksiniz. 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ı ancak yine de test çalıştırıcıyı ana giriş noktası olarak kullanmalıdır.
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, features, javacopts, licenses, packages, restricted_to, tags, target_compatible_with, testonly, visibility)
Bir paket grubuna uygulanacak yapılandırma.
Yapılandırmalar java_toolchain.javacopts
öğelerine 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; gerekli Bu hedef için benzersiz bir ad. |
data
|
Etiket listesi; varsayılan |
javacopts
|
Dize listesi; varsayılan değer: |
packages
|
Etiket listesi; varsayılan package_group kümesi.
|
java_plugin
Kural kaynağını gösterjava_plugin(name, deps, srcs, data, resources, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, generates_api, javacopts, licenses, neverlink, output_licenses, plugins, processor_class, proguard_specs, resource_jars, resource_strip_prefix, restricted_to, tags, target_compatible_with, testonly, 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ı, eklentileri plugins
özelliği aracılığıyla bağlı olarak çalıştırabilir. java_library
ayrıca exported_plugins
kullanarak eklentileri doğrudan kendisine bağımlı olan kitaplıklara otomatik olarak aktarabilir.
Dolaylı çı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; gerekli Bu hedef için benzersiz bir ad. |
deps
|
Etiket listesi; varsayılan deps ile ilgili genel yorumlara göz atın.
Buna karşılık |
srcs
|
Etiket listesi; varsayılan
Kurallar: Kural (genellikle
Bu bağımsız değişken, bir |
data
|
Etiket listesi; varsayılan data ile ilgili genel yorumlara göz atın.
|
resources
|
Etiket listesi; varsayılan
Kaynaklar belirtilirse, derleme tarafından üretilen normal Kaynaklar, kaynak dosyalar veya oluşturulan dosyalar olabilir. |
generates_api
|
Boole; varsayılan değer Bir kural, API oluşturan bir ek açıklama işlemcisi kullanıyorsa bu işleme bağlı diğer kurallar, yalnızca derleme işlemleri oluşturma kuralından sonra planlanmışsa oluşturulan koda başvurabilir. Bu özellik, --java_header_compilation etkinleştirildiğinde Bazel'a planlama kısıtlamaları kullanma talimatı verir. UYARI: Bu özellik derleme performansını etkiler. Özelliği yalnızca gerektiğinde kullanın. |
javacopts
|
Dize listesi; varsayılan değer: Bu derleyici seçenekleri, genel derleyici seçeneklerinden sonra javac'a iletilir. |
neverlink
|
Boole; varsayılan değer tools.jar verilebilir.
Çalışma zamanı kitaplığı, derleme kitaplığından farklıysa yalnızca JLS'nin derleyicilerin satır içi olmasını engellediği (ve JLS'nin gelecekteki tüm sürümleri için geçerli olması gereken) yerlerde farklı olduğundan emin olmalısınız. |
output_licenses
|
Lisans türü; varsayılan değer: common attributes
|
plugins
|
Etiket listesi; varsayılan java_plugin , bu kural oluşturulduğunda çalışır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan eklentiler de devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın ortaya çıkan jar dosyasına dahil edilir.
|
processor_class
|
Dize; varsayılan değer |
proguard_specs
|
Etiket listesi; varsayılan android_binary hedefine eklenir.
Buraya dahil edilen dosyaların yalnızca idempotent kuralları, yani -dontnote, -dontwarn, kindnosideeffects ve -keep ile başlayan kuralları olmalıdır. Diğer seçenekler, totoolojik olmayan birleştirmeleri sağlamak için yalnızca android_binary proGuard_specs içinde görünebilir.
|
resource_jars
|
Etiket listesi; varsayılan |
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, features, hermetic_srcs, java, java_home, lib_ct_sym, lib_modules, licenses, restricted_to, tags, target_compatible_with, testonly, 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; gerekli Bu hedef için benzersiz bir ad. |
srcs
|
Etiket listesi; varsayılan |
default_cds
|
Etiket; varsayılan değer java_runtime için varsayılan CDS arşivi. Hermetik, bir java_binary hedefi için etkinleştirildiğinde ve hedef, classlist özelliğini belirterek kendi CDS arşivini sağlamazsa java_runtime varsayılan CDS, hermetik dağıtım JAR'de paketlenir.
|
hermetic_srcs
|
Etiket listesi; varsayılan |
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 gerekli lib/ct.sym dosyası. Belirtilmezse ve srcs içinde yolu /lib/ct.sym ile biten tam olarak bir dosya varsa bu dosya kullanılır.
|
lib_modules
|
Etiket; varsayılan değer |
version
|
Tam sayı; varsayılan değer 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_with, deprecation, deps_checker, distribs, features, forcibly_disable_header_compilation, genclass, header_compiler, header_compiler_direct, ijar, jacocorunner, java_runtime, javabuilder, javabuilder_data, javabuilder_jvm_opts, javac_supports_multiplex_workers, javac_supports_worker_multiplex_sandboxing, javac_supports_workers, javacopts, jvm_opts, licenses, oneversion, oneversion_allowlist_for_tests, oneversion_whitelist, package_configuration, proguard_allowlister, resourcejar, restricted_to, singlejar, source_version, tags, target_compatible_with, target_version, testonly, timezone_data, tools, turbine_data, turbine_jvm_opts, visibility, xlint)
Java derleyici yapılandırmasını belirtir. Kullanılacak araç zinciri, --java_toolchain bağımsız değişkeni aracılığıyla değiştirilebilir. Normalde, Java derleyicinizi ayarlamak istemiyorsanız bu tür kurallar yazmamalısınız.
Örnekler
Basit bir örnek şöyle olabilir:
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; gerekli Bu hedef için benzersiz bir ad. |
android_lint_data
|
Etiket listesi; varsayılan |
android_lint_jvm_opts
|
Dize listesi; varsayılan değer: |
android_lint_opts
|
Dize listesi; varsayılan değer: |
android_lint_package_configuration
|
Etiket listesi; varsayılan |
android_lint_runner
|
Etiket; varsayılan değer |
bootclasspath
|
Etiket listesi; varsayılan |
deps_checker
|
Etiket listesi; varsayılan |
forcibly_disable_header_compilation
|
Boole; varsayılan değer |
genclass
|
Etiket listesi; zorunlu GenClass dağıtım jar'ının etiketi. |
header_compiler
|
Etiket listesi; varsayılan |
header_compiler_direct
|
Etiket listesi; varsayılan Bu araç, not işlemeyi desteklemez. |
ijar
|
Etiket listesi; zorunlu ijar yürütülebilir dosyasının etiketi. |
jacocorunner
|
Etiket; varsayılan değer |
java_runtime
|
Label; zorunlu Bu araç zinciriyle kullanılacak java_runtime kodu. Yürütme yapılandırmasında varsayılan olarak java_runtime değerine ayarlanır. |
javabuilder
|
Etiket listesi; zorunlu JavaBuilder dağıtım deposunun etiketi. |
javabuilder_data
|
Etiket listesi; varsayılan |
javabuilder_jvm_opts
|
Dize listesi; varsayılan değer: |
javac_supports_multiplex_workers
|
Boole; varsayılan değer |
javac_supports_worker_multiplex_sandboxing
|
Boole; varsayılan değer |
javac_supports_workers
|
Boole; varsayılan değer |
javacopts
|
Dize listesi; varsayılan değer: |
jvm_opts
|
Dize listesi; varsayılan değer: |
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 |
proguard_allowlister
|
Etiket; varsayılan değer |
resourcejar
|
Etiket listesi; varsayılan |
singlejar
|
Etiket listesi; zorunlu SingleJar dağıtım jar'ının etiketi. |
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 |
turbine_data
|
Etiket listesi; varsayılan |
turbine_jvm_opts
|
Dize listesi; varsayılan değer: |
xlint
|
Dize listesi; varsayılan değer: |