Kurallar
- java_binary
- java_import
- java_library
- java_test
- java_package_configuration
- java_plugin
- java_runtime
- java_single_jar
- java_toolchain
java_binary
Kural kaynağını görüntülemejava_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)
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ğerlerinin yanı sıra ikili dosyanı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ı çalıştırıldığında, boş olmayan tüm JAVABIN
ortam değişkenleri, Bazel'in --java_runtime_version
işareti aracılığıyla belirtilen sürüme göre öncelik alır.
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 dosyanı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ı ("source jar") içeren bir arşiv.name_deploy.jar
: Dağıtıma uygun bir Java arşivi (yalnızca açıkça istenirse oluşturulur).Kuralınız için
<name>_deploy.jar
hedefini derlediğinizde,java -jar
komutuyla veya sarmalayıcı komut dosyasının--singlejar
seçeneğiyle çalıştırılmasına olanak tanıyan bir manifest içeren kendi kendine yeten bir jar dosyası oluşturulur. JVM işaretlerini ve yerel kitaplıkları yükleme seçeneklerini de ilettiğindenjava -jar
yerine sarmalayıcı komut dosyasının kullanılması tercih edilir.Yayınlama jar'ı, sınıf yolu için ikili dosyanın sarmalayıcı komut dosyasını baştan sona arayan bir sınıf yükleyici tarafından bulunacak 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 JVM'ye otomatik olarak yüklenir.
Hedefiniz bir başlatıcı özelliği belirtiyorsa _deploy.jar normal bir JAR dosyası yerine yerel bir ikili dosya olur. Bu paket, başlatıcıyı ve kuralınızın tümünü statik bir ikili dosyaya bağlı olan yerel (C++) bağımlılıkları içerir. Gerçek jar dosyasının baytları bu yerel ikili programa eklenir. Böylece hem yürütülebilir dosyayı hem de Java kodunu içeren tek bir ikili program blob'u oluşturulur. Elde edilen jar dosyasını doğrudan herhangi bir yerel ikili dosyayı yürüttüğünüz gibi yürütebilirsiniz.
name_deploy-src.jar
: Hedefin geçişli kapatmasından toplanan kaynakları içeren bir arşiv. Bu sınıflar, jar'ların eşleşen bir kaynak jar'ı olmadığı durumlar hariç olmak üzeredeploy.jar
sınıflarıyla eşleşir.
Uygulamanın ana giriş noktası olan kaynak dosyanın adını (uzantı hariç) kullanmanız önerilir. Örneğin, giriş noktanız Main.java
ise adınız Main
olabilir.
srcs
olmadan 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 sık yapılan 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 şunları 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. |
deps
|
Etiketler listesi; varsayılan değer deps ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.
|
srcs
|
Etiketler listesi; varsayılan değer
Kurallar: Kural (genellikle
Bir |
data
|
Etiketler listesi; varsayılan değer data ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.
|
resources
|
Etiketler listesi; varsayılan değer Kaynaklar kaynak dosyalar veya oluşturulan dosyalar olabilir.
Kaynaklar belirtilirse derleme işlemiyle oluşturulan normal |
add_exports
|
Dize listesi; varsayılan değer module veya package 'a erişmesine izin verin.
Bu, javac ve JVM --add-exports= işaretlerine karşılık gelir. |
add_opens
|
Dize listesi; varsayılan değer module veya package 'a yansıtmalı 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
|
Etiketler listesi; varsayılan değer
Java ağacının kökünde bulunması gereken kaynakların listesi. Bu özelliğin tek amacı, kaynaklarının sınıf yolu içinde tam olarak |
create_executable
|
Boole; varsayılan değer java_single_jar kullanın.
|
deploy_env
|
Etiketler 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 özelliğin ayarlanması, bu ikili dosya ile deploy_env 'te belirtilen hedefler arasında paylaşılan, bu ikili dosyanın çalışma zamanı sınıf yolu (ve dağıtım jar'ı) içindeki 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" yerine koyma işlemine uygun 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 dosyası için sarmalayıcı komut dosyası, bir CLASSPATH tanımı (tüm bağımlı jar dosyalarını bulmak için) içerir 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 dosyayı belirtin.
Hedef bir cc_binary olmalıdır.
Java Invocation API'yi uygulayan tüm cc_binary bu özelliğin değeri olarak belirtilebilir.
Bazel varsayılan olarak normal JDK başlatıcıyı (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ısı dışında bir başlatıcı kullanıldığında |
main_class
|
Dize; varsayılan değer main() yönteminin bulunduğu sınıfın adı.
Bu seçeneği kullanan kurallar için srcs=[...] listesi gerekmez.
Bu nedenle, bu özellik sayesinde bir veya daha fazla main() yöntemi içeren bir Java kitaplığından yürütülebilir bir program oluşturabilirsiniz.
Bu özelliğin değeri, 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 derlenebilir ( |
neverlink
|
Boole; varsayılan değer |
plugins
|
Etiketler listesi; varsayılan değer java_plugin , bu kural derlendiğinde çalıştırılır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan da eklentileri devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın oluşturulan jar dosyasına dahil edilir.
|
resource_strip_prefix
|
Dize; varsayılan değer
Belirtilirse bu yol ön eki, |
runtime_deps
|
Etiketler listesi; varsayılan değer deps gibi, bunlar da çalışma zamanı sınıf yolu üzerinde görünür ancak derleme zamanı sınıf yolunda görünmez. Yalnızca çalışma zamanında ihtiyaç duyulan bağımlılar burada listelenmelidir. Bağımlılık analizi araçları hem runtime_deps hem de deps 'te görünen hedefleri yoksayar.
|
stamp
|
Tam sayı; varsayılan değer
Damgalanmış ikili dosyalar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz. |
use_launcher
|
Boole; varsayılan değer Bu özellik yanlış değerine ayarlanırsa launcher ö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.
Bu özelliği, java_test kuralları için test çalıştırıcıyı kullanma ve java_binary kuralları için kullanmama şeklindeki varsayılan davranışı geçersiz kılmak amacıyla kullanabilirsiniz. Bunu yapmak istemeyeceksiniz. Örneğin, testleri çalıştırmadan önce veritabanı oluşturmak için başka bir kural tarafından çağrılan AllTest kurallar için kullanılabilir. AllTest kuralı bir 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_import
Kural kaynağını görüntülemejava_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
|
Etiketler listesi; varsayılan değer |
data
|
Etiketler listesi; varsayılan değer |
add_exports
|
Dize listesi; varsayılan değer module veya package 'a erişmesine izin verin.
Bu, javac ve JVM --add-exports= işaretlerine karşılık gelir. |
add_opens
|
Dize listesi; varsayılan değer module veya package 'a yansıtmalı olarak erişmesine izin verin.
Bu, javac ve JVM --add-opens= işaretlerine karşılık gelir. |
constraints
|
Dize listesi; varsayılan değer |
exports
|
Etiketler listesi; varsayılan değer |
jars
|
Etiketler 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
|
Etiketler listesi; varsayılan değer android_binary hedeflerine eklenir.
Buraya dahil edilen dosyalarda yalnızca idempotent kurallar (ör. -dontnote, -dontwarn, assumenosideeffects ve -keep ile başlayan kurallar) bulunmalıdır. Diğer seçenekler, tautolojik olmayan birleştirmelerin yapılması için yalnızca android_binary 'nin proguard_specs dosyasında görünebilir.
|
runtime_deps
|
Etiketler listesi; varsayılan değer |
srcjar
|
Etiket; varsayılan değer |
java_library
Kural kaynağını görüntülemejava_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ı derleyip .jar
dosyasına bağlar.
Örtülü çıkışlar
libname.jar
: Sınıf dosyalarını içeren bir Java arşivi.libname-src.jar
: Kaynakları ("source jar") içeren bir arşiv.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiketler listesi; varsayılan değer deps ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.
Buna karşılık, |
srcs
|
Etiketler 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 hata oluşur.
|
data
|
Etiketler listesi; varsayılan değer data ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.
Bazel, |
resources
|
Etiketler listesi; varsayılan değer Kaynaklar kaynak dosyalar veya oluşturulan dosyalar olabilir.
Kaynaklar belirtilirse derleme işlemiyle oluşturulan normal |
add_exports
|
Dize listesi; varsayılan değer module veya package 'a erişmesine izin verin.
Bu, javac ve JVM --add-exports= işaretlerine karşılık gelir. |
add_opens
|
Dize listesi; varsayılan değer module veya package 'a yansıtmalı 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
|
Etiketler listesi; varsayılan değer java_plugin 'lerin (ör. ek açıklama işleyiciler) listesi.
Belirtilen |
exports
|
Etiketler listesi; varsayılan değer
Kurallar burada listelendiğinde, üst kurallar bu kurallara açıkça bağlıymış gibi üst kurallar tarafından kullanılabilir. Bu durum, normal (dışa aktarılmamış)
Özet: X kuralı, aralarında
A'nın B'ye, B'nin de C'ye bağlı olduğunu varsayalım. Bu durumda C, A'nın geçişli bir bağımlılığıdır. Bu nedenle, 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ıflarını kullanamaz. Bunun için A'nın Dışa aktarılan kitaplıkların kapatılması, tüm doğrudan üst kural için kullanılabilir. Biraz farklı bir örnek verelim: A, B'ye bağlıdır, B ise C ve D'ye bağlıdır ve C'yi dışa aktarır ancak D'yi dışa aktarmaz. Artık A, C'ye erişebilir ancak D'ye erişemez. C ve D, sırasıyla C' ve D' kitaplıklarını dışa aktardıysa 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 bağlı kalarak, B, C'yi dışa aktarıyorsa ve C'yi kullanmak istiyorsa kendi |
javabuilder_jvm_flags
|
Dize listesi; varsayılan değer |
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 yerleştirmesini yasakladığı yerlerde farklı olduğundan emin olmanız gerekir (ve bu, JLS'nin gelecekteki tüm sürümleri için geçerli olmalıdır). |
plugins
|
Etiketler listesi; varsayılan değer java_plugin , bu kural derlendiğinde çalıştırılır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan da eklentileri devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın oluşturulan jar dosyasına dahil edilir.
|
proguard_specs
|
Etiketler listesi; varsayılan değer android_binary hedeflerine eklenir.
Buraya dahil edilen dosyalarda yalnızca idempotent kurallar (ör. -dontnote, -dontwarn, assumenosideeffects ve -keep ile başlayan kurallar) bulunmalıdır. Diğer seçenekler, tautolojik olmayan birleştirmelerin yapılması için yalnızca android_binary 'nin proguard_specs dosyasında görünebilir.
|
resource_strip_prefix
|
Dize; varsayılan değer
Belirtilirse bu yol ön eki, |
runtime_deps
|
Etiketler listesi; varsayılan değer deps gibi, bunlar da çalışma zamanı sınıf yolu üzerinde görünür ancak derleme zamanı sınıf yolunda görünmez. Yalnızca çalışma zamanında ihtiyaç duyulan bağımlılar burada listelenmelidir. Bağımlılık analizi araçları hem runtime_deps hem de deps 'te görünen hedefleri yoksayar.
|
java_test
Kural kaynağını görüntülemejava_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 testini derleyebilir. Test, test kodunuzun etrafındaki ikili bir sarmalayıcıdır. Ana sınıf derlenmek yerine test çalıştırıcısının ana yöntemi çağrılır.
Örtülü çıkış hedefleri
name.jar
: 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 bilgi için java_binary işlevinden elde edilenname_deploy.jar
çıktısının açıklamasına bakın.
java_binary()
bağımsız değişkenleri hakkındaki 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
|
Etiketler listesi; varsayılan değer deps ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.
|
srcs
|
Etiketler listesi; varsayılan değer
Kurallar: Kural (genellikle
Bir |
data
|
Etiketler listesi; varsayılan değer data ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.
|
resources
|
Etiketler listesi; varsayılan değer Kaynaklar kaynak dosyalar veya oluşturulan dosyalar olabilir.
Kaynaklar belirtilirse derleme işlemiyle oluşturulan normal |
add_exports
|
Dize listesi; varsayılan değer module veya package 'a erişmesine izin verin.
Bu, javac ve JVM --add-exports= işaretlerine karşılık gelir. |
add_opens
|
Dize listesi; varsayılan değer module veya package 'a yansıtmalı 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
|
Etiketler listesi; varsayılan değer
Java ağacının kökünde bulunması gereken kaynakların listesi. Bu özelliğin tek amacı, kaynaklarının sınıf yolu içinde tam olarak |
create_executable
|
Boole; varsayılan değer java_single_jar 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" yerine koyma işlemine uygun 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 dosyası için sarmalayıcı komut dosyası, bir CLASSPATH tanımı (tüm bağımlı jar dosyalarını bulmak için) içerir 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 dosyayı belirtin.
Hedef bir cc_binary olmalıdır.
Java Invocation API'yi uygulayan tüm cc_binary bu özelliğin değeri olarak belirtilebilir.
Bazel varsayılan olarak normal JDK başlatıcıyı (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ısı dışında bir başlatıcı kullanıldığında |
main_class
|
Dize; varsayılan değer main() yönteminin bulunduğu sınıfın adı.
Bu seçeneği kullanan kurallar için srcs=[...] listesi gerekmez.
Bu nedenle, bu özellik sayesinde bir veya daha fazla main() yöntemi içeren bir Java kitaplığından yürütülebilir bir program oluşturabilirsiniz.
Bu özelliğin değeri, 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 derlenebilir ( |
neverlink
|
Boole; varsayılan değer |
plugins
|
Etiketler listesi; varsayılan değer java_plugin , bu kural derlendiğinde çalıştırılır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan da eklentileri devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın oluşturulan jar dosyasına dahil edilir.
|
resource_strip_prefix
|
Dize; varsayılan değer
Belirtilirse bu yol ön eki, |
runtime_deps
|
Etiketler listesi; varsayılan değer deps gibi, bunlar da çalışma zamanı sınıf yolu üzerinde görünür ancak derleme zamanı sınıf yolunda görünmez. Yalnızca çalışma zamanında ihtiyaç duyulan bağımlılar burada listelenmelidir. Bağımlılık analizi araçları hem runtime_deps hem de deps 'te görünen hedefleri yoksayar.
|
stamp
|
Tam sayı; varsayılan değer
Damgalanmış ikili dosyalar, 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ımlanmazsa eski mod kullanılır ve bunun yerine test bağımsız değişkenleri kullanılır. İlk bağımsız değişkene geri dönmemek için
Bu özellik, bu test tarafından çalıştırılacak bir Java sınıfının adını belirtir. Bu ayarı yapmanız gerekmez. 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 yanlış değerine ayarlanırsa launcher ö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.
Bu özelliği, java_test kuralları için test çalıştırıcıyı kullanma ve java_binary kuralları için kullanmama şeklindeki varsayılan davranışı geçersiz kılmak amacıyla kullanabilirsiniz. Bunu yapmak istemeyeceksiniz. Örneğin, testleri çalıştırmadan önce veritabanı oluşturmak için başka bir kural tarafından çağrılan AllTest kurallar için kullanılabilir. AllTest kuralı bir 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örüntülemejava_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)
Bir paket grubuna uygulanacak yapılandırma.
Yapılandırmalar java_toolchain.javacopts
'lere 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
|
Etiketler listesi; varsayılan değer |
javacopts
|
Dize listesi; varsayılan değer |
output_licenses
|
Dize listesi; varsayılan değer |
packages
|
Etiketler listesi; varsayılan değer package_group grubu.
|
system
|
Etiket; varsayılan değer |
java_plugin
Kural kaynağını görüntülemejava_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. Yalnızca ek açıklama işleyiciler desteklenir. java_library
veya java_binary
kuralları, plugins
özelliği aracılığıyla eklentileri çalıştırabilir. java_library
, exported_plugins
kullanarak eklentileri doğrudan kendisine bağlı olan kitaplıklara da otomatik olarak aktarabilir.
Örtülü çıkış hedefleri
libname.jar
: 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
|
Etiketler listesi; varsayılan değer deps ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.
Buna karşılık, |
srcs
|
Etiketler 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 hata oluşur.
|
data
|
Etiketler listesi; varsayılan değer data ile ilgili genel yorumları Çoğu derleme kuralı tarafından tanımlanan tipik özellikler bölümünde bulabilirsiniz.
Bazel, |
resources
|
Etiketler listesi; varsayılan değer Kaynaklar kaynak dosyalar veya oluşturulan dosyalar olabilir.
Kaynaklar belirtilirse derleme işlemiyle oluşturulan normal |
add_exports
|
Dize listesi; varsayılan değer module veya package 'a erişmesine izin verin.
Bu, javac ve JVM --add-exports= işaretlerine karşılık gelir. |
add_opens
|
Dize listesi; varsayılan değer module veya package 'a yansıtmalı 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 değer Bir kural API oluşturan bir ek açıklama işleyici kullanıyorsa buna bağlı diğer kurallar, oluşturulan koda yalnızca derleme işlemleri, oluşturan kuraldan sonra planlanmışsa atıfta bulunabilir. Bu özellik, Bazel'e --java_header_compilation etkinleştirildiğinde planlama kısıtlamaları uygulamasını söyler. UYARI: Bu özellik derleme performansını etkiler. Yalnızca gerektiğinde kullanın. |
javabuilder_jvm_flags
|
Dize listesi; varsayılan değer |
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 yerleştirmesini yasakladığı yerlerde farklı olduğundan emin olmanız gerekir (ve bu, JLS'nin gelecekteki tüm sürümleri için geçerli olmalıdır). |
output_licenses
|
Dize listesi; varsayılan değer |
plugins
|
Etiketler listesi; varsayılan değer java_plugin , bu kural derlendiğinde çalıştırılır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan da eklentileri devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın oluşturulan jar dosyasına dahil edilir.
|
processor_class
|
Dize; varsayılan değer |
proguard_specs
|
Etiketler listesi; varsayılan değer android_binary hedeflerine eklenir.
Buraya dahil edilen dosyalarda yalnızca idempotent kurallar (ör. -dontnote, -dontwarn, assumenosideeffects ve -keep ile başlayan kurallar) bulunmalıdır. Diğer seçenekler, tautolojik olmayan birleştirmelerin yapılması için yalnızca android_binary 'nin proguard_specs dosyasında görünebilir.
|
resource_strip_prefix
|
Dize; varsayılan değer
Belirtilirse bu yol ön eki, |
java_runtime
Kural kaynağını görüntülemejava_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
|
Etiketler 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 dağıtım etkinleştirildiğinde java_runtime varsayılan CDS, hermetik dağıtım JAR'ına paketlenir.
|
hermetic_srcs
|
Etiketler listesi; varsayılan değer |
hermetic_static_libs
|
Etiketler 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ı. Belirtilmemişse 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 |
output_licenses
|
Dize listesi; varsayılan değer |
version
|
Tam sayı; varsayılan değer Runtime.version().feature() tarafından döndürülen tam sayı.
|
java_single_jar
Kural kaynağını görüntülemejava_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)
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Ad; zorunlu Bu hedef için benzersiz bir ad. |
deps
|
Etiketler listesi; varsayılan değer |
compress
|
Dize; varsayılan değer |
deploy_env
|
Etiketler listesi; varsayılan değer |
deploy_manifest_lines
|
Dize listesi; varsayılan değer META-INF/manifest.mf dosyasına eklenecek satırların listesi.
|
exclude_build_data
|
Boole; varsayılan değer |
multi_release
|
Boole; varsayılan değer |
java_toolchain
Kural kaynağını görüntülemejava_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 derleyicisinin yapılandırmasını belirtir. Kullanılacak araç seti, --java_toolchain bağımsız değişkeni aracılığıyla değiştirilebilir. Java derleyicinizi ayarlamak istemiyorsanız genellikle bu tür kurallar yazmamalısınız.
Örnekler
Basit bir örnek verelim:
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
|
Etiketler listesi; varsayılan değer |
android_lint_jvm_opts
|
Dize listesi; varsayılan değer |
android_lint_opts
|
Dize listesi; varsayılan değer |
android_lint_package_configuration
|
Etiketler listesi; varsayılan değer |
android_lint_runner
|
Etiket; varsayılan değer |
bootclasspath
|
Etiketler listesi; varsayılan değer |
compatible_javacopts
|
null; varsayılan değer |
deps_checker
|
Etiket; varsayılan değer |
forcibly_disable_header_compilation
|
Boole; varsayılan değer |
genclass
|
Etiket; varsayılan değer |
header_compiler
|
Etiket; varsayılan değer |
header_compiler_builtin_processors
|
Dize listesi; varsayılan değer |
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
|
Etiketler listesi; varsayılan değer |
javabuilder_jvm_opts
|
Dize listesi; varsayılan değer |
javac_supports_multiplex_workers
|
Boole; varsayılan değer |
javac_supports_worker_cancellation
|
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 |
jspecify_implicit_deps
|
Etiket; varsayılan değer |
jspecify_javacopts
|
Dize listesi; varsayılan değer |
jspecify_packages
|
Etiketler listesi; varsayılan değer |
jspecify_processor
|
Etiket; varsayılan değer |
jspecify_processor_class
|
Dize; varsayılan değer |
jspecify_stubs
|
Etiketler listesi; varsayılan değer |
jvm_opts
|
Dize listesi; varsayılan değer |
misc
|
Dize listesi; varsayılan değer |
oneversion
|
Etiket; varsayılan değer |
oneversion_allowlist
|
Etiket; varsayılan değer |
oneversion_allowlist_for_tests
|
Etiket; varsayılan değer |
oneversion_whitelist
|
Etiket; varsayılan değer |
package_configuration
|
Etiketler listesi; varsayılan değer |
proguard_allowlister
|
Etiket; varsayılan değer |
reduced_classpath_incompatible_processors
|
Dize listesi; varsayılan değer |
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
|
Etiketler listesi; varsayılan değer |
turbine_data
|
Etiketler listesi; varsayılan değer |
turbine_jvm_opts
|
Dize listesi; varsayılan değer |
xlint
|
Dize listesi; varsayılan değer |