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
java_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 bir sınıf yolu kullanı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 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 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 izin verir. Sarmalayıcı komut dosyası, JVM flag'lerini ve yerel kitaplıkları yükleme seçeneklerini de ilettiğindenjava -jar
için tercih edilir.Dağıtım jar dosyası, classpath içinde ikili programın sarmalayıcı komut dosyasından başından sonuna kadar arama yapan 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 JVM'ye otomatik olarak yüklenir.
Hedefiniz bir başlatıcı özelliği belirtiyorsa _Deploy.jar dosyası, normal bir JAR dosyası yerine yerel bir ikili program olur. Bu işlem, 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 programa bağlanır. Gerçek jar dosyasının baytları bu yerel ikili programa eklenir ve hem yürütülebilir dosyayı 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 özelliğine sahip 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. 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 |
Bu hedef için benzersiz bir ad. Uygulamanın ana giriş noktası olan kaynak dosyanın adını (uzantıyı çıkararak) kullanmanız önerilir. Örneğin, giriş noktanızın adı Main.java ise adınız Main olabilir.
|
deps
|
deps ile ilgili genel yorumlara bakın.
|
srcs
|
Kurallar: Kural (genellikle
Bu bağımsız değişken, bir |
resources
|
Kaynaklar belirtilirse kavanozun içinde, derleme tarafından oluşturulan her zamanki Kaynaklar, kaynak dosyalar veya oluşturulmuş dosyalar olabilir. |
classpath_resources
|
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
|
launcher veya main_class özellikleri ayarlanmışsa bu değeri 0 olarak ayarlamak bir hatadır.
|
deploy_env
|
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
|
*_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
|
Bu derleyici seçenekleri, genel derleyici seçeneklerinden sonra javac'ya aktarılır. |
jvm_flags
|
Java ikilisi 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 Bu özelliğin |
launcher
|
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 özelliğin bir değeri olarak belirtilebilir.
Varsayılan olarak, Bazel 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 oluşturulacağını unutmayın:
Varsayılan JDK başlatıcıdan farklı bir başlatıcı kullanırken |
main_class
|
main() yöntemine sahip sınıfın adı.
Bir kural bu seçeneği kullanırsa srcs=[...] listesine ihtiyaç duymaz.
Dolayısıyla, bu özellikle, zaten 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, sınıf adıdır. Sınıf çalışma zamanında kullanılabilir olmalıdır: Bu kural tarafından derlenmiş ( |
plugins
|
java_plugin , bu kural oluşturulduğunda çalıştırılır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan eklentiler de devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın sonuç jar dosyasına eklenir.
|
resource_jars
|
|
resource_strip_prefix
|
Belirtilirse bu yol ön eki, |
runtime_deps
|
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 yoksaymalıdır.
|
stamp
|
Damgalı ikili programlar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz. |
use_launcher
|
Bu özellik yanlış değerine ayarlanırsa
Başlatıcı özelliği ve ilgili
|
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) kullanın ve test sınıfını bazel.test_suite sistem özelliğinin değeri olarak test çalıştırıcısına sağlayın.
Test çalıştırıcısını java_test kuralları için kullanmak ve java_binary kuralları için kullanmamak olan varsayılan davranışı geçersiz kılmak için bunu kullanabilirsiniz. Büyük olasılıkla 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 beyan edilmeli ancak yine de ana giriş noktası olarak test çalıştırıcısını 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
java_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 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 |
Bu hedef için benzersiz bir ad. |
deps
|
|
constraints
|
|
exports
|
|
jars
|
|
neverlink
|
tools.jar verilebilir.
|
proguard_specs
|
android_binary hedeflerine eklenirler.
Burada yer alan dosyalarda yalnızca eş anlamlı kuralları (-dontnote, -dontwarn, forcenosideeffects 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 ürününün proGuard_specs bölümünde görünebilir.
|
runtime_deps
|
|
srcjar
|
|
java_library
java_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ı derleyip bir .jar
dosyası şeklinde bağlar.
Örtülü çı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 |
Bu hedef için benzersiz bir ad. |
deps
|
deps ile ilgili genel yorumlara bakın.
Buna karşılık, |
srcs
|
Kurallar: Kural (genellikle
Bu bağımsız değişken, bir |
data
|
data ile ilgili genel yorumlara bakın.
Bir |
resources
|
Kaynaklar belirtilirse kavanozun içinde, derleme tarafından oluşturulan her zamanki Kaynaklar, kaynak dosyalar veya oluşturulmuş dosyalar olabilir. |
exported_plugins
|
java_plugin öğelerinin (ör. ek açıklama işlemcileri) listesi.
Belirtilen |
exports
|
Burada listeleme kuralları, üst kurallar bu kurallara dayanıyormuş 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 de 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ştirmek ve A'yı yeniden oluşturmak her şeyi doğru şekilde yeniden oluşturur. Ancak A, C'deki sınıfları kullanamaz. Buna izin vermek için A'nın Dışa aktarılan kitaplıkların kapatılması, tüm doğrudan üst kurallar tarafından kullanılabilir. Biraz farklı bir örnek verebiliriz: 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 artık C'ye erişebilir, 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şebilir, D'ye erişemez.
Önemli: Dışa aktarılan bir kural düzenli bir bağımlılık değildir. Önceki örneğe devam edersek B, C'yi dışa aktarıp C'yi de kullanmak istiyorsa bunu kendi |
javacopts
|
Bu derleyici seçenekleri, genel derleyici seçeneklerinden sonra javac'ya aktarılır. |
neverlink
|
tools.jar bu tür kitaplıklara örnek 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
|
java_plugin , bu kural oluşturulduğunda çalıştırılır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan eklentiler de devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın sonuç jar dosyasına eklenir.
|
proguard_specs
|
android_binary hedeflerine eklenirler.
Burada yer alan dosyalarda yalnızca eş anlamlı kuralları (-dontnote, -dontwarn, forcenosideeffects 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 ürününün proGuard_specs bölümünde görünebilir.
|
resource_jars
|
|
resource_strip_prefix
|
Belirtilirse bu yol ön eki, |
runtime_deps
|
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 yoksaymalıdır.
|
java_lite_proto_library
java_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
dosyalarından Java kodu oluşturur.
deps
, proto_library
kuralları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 |
Bu hedef için benzersiz bir ad. |
deps
|
proto_library kurallarının listesi.
|
java_proto_library
java_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
dosyalarından Java kodu oluşturur.
deps
, proto_library
kuralları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 |
Bu hedef için benzersiz bir ad. |
deps
|
proto_library kurallarının listesi.
|
java_test
java_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 ç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ıma uygun bir Java arşivi. (Yalnızca açıkça istenirse oluşturulur.) Daha fazla bilgi için java_binary kodundakiname_deploy.jar
çıkışının açıklamasına bakın.
java_binary() bağımsız değişkenleri ile 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 |
Bu hedef için benzersiz bir ad. |
deps
|
deps ile ilgili genel yorumlara bakın.
|
srcs
|
Kurallar: Kural (genellikle
Bu bağımsız değişken, bir |
resources
|
Kaynaklar belirtilirse kavanozun içinde, derleme tarafından oluşturulan her zamanki Kaynaklar, kaynak dosyalar veya oluşturulmuş dosyalar olabilir. |
classpath_resources
|
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
|
launcher veya main_class özellikleri ayarlanmışsa bu değeri 0 olarak ayarlamak bir hatadır.
|
deploy_manifest_lines
|
*_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
|
Bu derleyici seçenekleri, genel derleyici seçeneklerinden sonra javac'ya aktarılır. |
jvm_flags
|
Java ikilisi 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 Bu özelliğin |
launcher
|
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 özelliğin bir değeri olarak belirtilebilir.
Varsayılan olarak, Bazel 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 oluşturulacağını unutmayın:
Varsayılan JDK başlatıcıdan farklı bir başlatıcı kullanırken |
main_class
|
main() yöntemine sahip sınıfın adı.
Bir kural bu seçeneği kullanırsa srcs=[...] listesine ihtiyaç duymaz.
Dolayısıyla, bu özellikle, zaten 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, sınıf adıdır. Sınıf çalışma zamanında kullanılabilir olmalıdır: Bu kural tarafından derlenmiş ( |
plugins
|
java_plugin , bu kural oluşturulduğunda çalıştırılır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan eklentiler de devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın sonuç jar dosyasına eklenir.
|
resource_jars
|
|
resource_strip_prefix
|
Belirtilirse bu yol ön eki, |
runtime_deps
|
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 yoksaymalıdır.
|
stamp
|
Damgalı ikili programlar, bağımlılıkları değişmediği sürece yeniden oluşturulmaz. |
test_class
|
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ı yapmak nadiren gerekebilir. Bu bağımsız değişken atlanırsa hedefin
JUnit3 için test sınıfının bir
Bu özellik, birkaç |
use_launcher
|
Bu özellik yanlış değerine ayarlanırsa
Başlatıcı özelliği ve ilgili
|
use_testrunner
|
com.google.testing.junit.runner.BazelTestRunner ) kullanın ve test sınıfını bazel.test_suite sistem özelliğinin değeri olarak test çalıştırıcısına sağlayın.
Test çalıştırıcısını java_test kuralları için kullanmak ve java_binary kuralları için kullanmamak olan varsayılan davranışı geçersiz kılmak için bunu kullanabilirsiniz. Büyük olasılıkla 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 beyan edilmeli ancak yine de ana giriş noktası olarak test çalıştırıcısını 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
java_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 |
Bu hedef için benzersiz bir ad. |
data
|
|
javacopts
|
|
packages
|
package_group grubu.
|
java_plugin
java_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ı, plugins
özelliği aracılığıyla eklentileri bağlı olarak çalıştırabilir. Ayrıca java_library
, eklentileri exported_plugins
kullanarak doğrudan kendisine bağlı kitaplıklara otomatik olarak aktarabilir.
Örtülü çıkış hedefleri
libname.jar
: Bir Java arşivi.
processor_class
bağımsız değişkeninin eklenmesi dışında, bağımsız değişkenler java_library
ile aynıdır.
Bağımsız değişkenler
Özellikler | |
---|---|
name |
Bu hedef için benzersiz bir ad. |
deps
|
deps ile ilgili genel yorumlara bakın.
Buna karşılık, |
srcs
|
Kurallar: Kural (genellikle
Bu bağımsız değişken, bir |
data
|
data ile ilgili genel yorumlara bakın.
Bir |
resources
|
Kaynaklar belirtilirse kavanozun içinde, derleme tarafından oluşturulan her zamanki Kaynaklar, kaynak dosyalar veya oluşturulmuş dosyalar olabilir. |
generates_api
|
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şlemlerinin oluşturma kuralından sonra programlanması durumunda oluşturulan koda referans verebilir. Bu özellik, Bazel'a --java_header_compilation etkinleştirildiğinde zamanlama kısıtlamalarını getirmesini bildirir. UYARI: Bu özellik, derleme performansını etkiler. Yalnızca gerektiğinde kullanın. |
javacopts
|
Bu derleyici seçenekleri, genel derleyici seçeneklerinden sonra javac'ya aktarılır. |
neverlink
|
tools.jar bu tür kitaplıklara örnek 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
|
common attributes
|
plugins
|
java_plugin , bu kural oluşturulduğunda çalıştırılır. Bir kitaplık, exported_plugins kullanan bağımlılıklardan eklentiler de devralabilir. Eklenti tarafından oluşturulan kaynaklar, bu kuralın sonuç jar dosyasına eklenir.
|
processor_class
|
|
proguard_specs
|
android_binary hedeflerine eklenirler.
Burada yer alan dosyalarda yalnızca eş anlamlı kuralları (-dontnote, -dontwarn, forcenosideeffects 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 ürününün proGuard_specs bölümünde görünebilir.
|
resource_jars
|
|
resource_strip_prefix
|
Belirtilirse bu yol ön eki, |
java_runtime
java_runtime(name, srcs, compatible_with, deprecation, distribs, features, hermetic_srcs, java, java_home, 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 |
Bu hedef için benzersiz bir ad. |
srcs
|
|
hermetic_srcs
|
|
java
|
|
java_home
|
srcs ve java özellikleri boş olmalıdır.
|
lib_modules
|
|
version
|
Runtime.version().feature() tarafından döndürülen tam sayı.
|
java_toolchain
java_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_workers, javacopts, jvm_opts, licenses, oneversion, 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 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
Basit bir örnek vermek gerekirse:
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 |
Bu hedef için benzersiz bir ad. |
android_lint_data
|
|
android_lint_jvm_opts
|
|
android_lint_opts
|
|
android_lint_package_configuration
|
|
android_lint_runner
|
|
bootclasspath
|
|
deps_checker
|
|
forcibly_disable_header_compilation
|
|
genclass
|
|
header_compiler
|
|
header_compiler_direct
|
Bu araç, ek açıklama işlemeyi desteklemez. |
ijar
|
|
jacocorunner
|
|
java_runtime
|
|
javabuilder
|
|
javabuilder_data
|
|
javabuilder_jvm_opts
|
|
javac_supports_multiplex_workers
|
|
javac_supports_workers
|
|
javacopts
|
|
jvm_opts
|
|
oneversion
|
|
oneversion_whitelist
|
|
package_configuration
|
|
proguard_allowlister
|
|
resourcejar
|
|
singlejar
|
|
source_version
|
|
target_version
|
|
timezone_data
|
|
tools
|
|
turbine_data
|
|
turbine_jvm_opts
|
|
xlint
|
|