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örüntülejava_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 her öğe için bir jar dosyası içeren
ikili programın bağlı olduğu kitaplıktır. Sarmalayıcı kabuk komut dosyasını çalıştırırken,
JAVABIN
ortam değişkeni, aracılığıyla belirtilen sürüme göre öncelikli olacaktır
Bazel'in --java_runtime_version
bayrağı.
Sarmalayıcı komut dosyası, birkaç benzersiz işareti kabul eder. Referans
//src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
.
inceleyebilirsiniz.
Dolaylı çıkış hedefleri
name.jar
: Sınıf dosyalarını ve diğer dosyaları içeren bir Java arşivi ve ikili programın doğrudan bağımlılıklarına karşılık gelen kaynaklardır.name-src.jar
: Kaynakları içeren bir arşiv ("kaynak jar").name_deploy.jar
: Dağıtıma uygun bir Java arşivi (yalnızca oluşturulur).Kuralınız için
<name>_deploy.jar
hedefi oluşturuluyor , dosyanınjava -jar
komutuyla veya sarmalayıcı komut dosyasının--singlejar
komutuyla seçeneğini belirleyin.java -jar
yerine sarmalayıcı komut dosyasının kullanılması tercih edilir çünkü JVM flag'lerini ve seçenekleri de iletir. yerel kitaplıklar yüklemek için kullanılır.Dağıtma jar dosyası, şu anda çalışan bir sınıf yükleyicinin bulacağı tüm sınıfları sınıf yolunu ikili programın sarmalayıcı komut dosyasından başından sonuna kadar aradı. Aynı zamanda bağımlılıklar için gerekli yerel kitaplıkları içerir. Bunlar otomatik olarak yüklenir JVM'ye aktarırsınız.
Hedefiniz bir başlatıcı belirtiyorsa özelliği ile birlikte çalışırsanız, _deploy.jar normal bir JAR dosyası yerine yerel ikili programdır. Bu, başlatıcıyı ve uygulamanın tüm yerel (C++) bağımlılıklarını içerir: statik bir ikili sisteme bağlanmalıdır. Gerçek jar dosyasının baytları yerel ikili programının sonuna eklenir ve hem yürütülebilir ve Java kodu. Oluşturulan jar dosyasını doğrudan çalıştırabilirsiniz olduğu gibi kullanabilirsiniz.
name_deploy-src.jar
: Kaynakları içeren bir arşiv hedefin geçişli olarak kapatılmasından toplanan verileri ölçer. Bunlar şu sınıflarla eşleşecek: Kavanozların eşleşen kaynak jar'ı olmadığı durumlar hariçdeploy.jar
.
Aşağıdaki değerler içermeyen java_binary
kuralında deps
özelliğine izin verilmez
srcs
; böyle bir kural için
main_class
sağlayan:
runtime_deps
.
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. Dosyanın ana giriş noktası olan kaynak dosyanın adını (uzantı hariç) seçin. Örneğin, giriş noktanız Main.java , adınız Main olabilir.
|
deps
|
Etiket listesi; varsayılan değer deps ile ilgili genel yorumları şu adreste bulabilirsiniz:
Genel özellikler
çoğu derleme kuralına bakın.
|
srcs
|
Etiket listesi; varsayılan değer
Kurallar: Kural (genellikle
Bu bağımsız değişken,
|
resources
|
Etiket listesi; varsayılan değer
Kaynaklar belirtilirse, normal kaynaklarla birlikte kavanozda paketlenir
Derleme, Kaynaklar, kaynak dosyalar veya oluşturulan dosyalar olabilir. |
classpath_resources
|
Etiket 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 kullanımını gerektiren üçüncü taraf kitaplıkları desteklemektir
sınıf yolunda tam olarak |
create_executable
|
Boole; nonconfig; varsayılan değer java_single_jar politikasını kullanın.
|
deploy_env
|
Etiket listesi; varsayılan değer java_binary hedeflerinin listesi
ortamına ekleyebilirsiniz.
Başka bir site tarafından yüklenecek bir eklenti oluştururken bu özelliği ayarlayın.
java_binary Bu özelliğin ayarlanması, bu ikili programın çalışma zamanı sınıf yolu (ve dağıtım jar'ı) ikili program ve deploy_env politikasında belirtilen hedefler.
|
deploy_manifest_lines
|
Dize listesi; varsayılan değer META-INF/manifest.mf dosyasına eklenecek satırların listesi
*_deploy.jar hedef. Bu özelliğin içeriği konu değildir
"Değişken yap" olarak değiştirin.
|
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çeriyor
(bağımlı tüm jar'ları bulmak için) kullanır 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 ve ardından Bu özelliğin |
launcher
|
Etiket; varsayılan değer bin/java programı JDK'ya dahildir.
Hedef bir cc_binary olmalıdır. Şu özelliklere sahip herhangi bir cc_binary :
,
Bu özellik için bir değer olarak Java Invocation API 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 farklı şekilde oluşturulacağını unutmayın JDK başlatıcıyı mı yoksa başka bir başlatıcıyı mı kullandığınıza bağlı olarak:
Varsayılan JDK başlatıcı dışında herhangi bir başlatıcıyı kullanırken biçim,
|
main_class
|
String; 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, önceden hazırlanmış bir Java kitaplığından yürütülebilir bir dosya
bir veya daha fazla main() yöntemi içerir.
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: bu kural tarafından derlenmiş olabilir ( |
plugins
|
Etiket listesi; varsayılan değer java_plugin bu kuralla birlikte çalıştırılır
geliştirildi. Bir kitaplık,
exported_plugins Kaynaklar
oluşturulan dosya, bu kuralın ortaya çıkan jar'ına dahil edilir.
|
resource_jars
|
Etiket listesi; varsayılan değer |
resource_strip_prefix
|
String; varsayılan değer
Belirtilirse bu yol öneki |
runtime_deps
|
Etiket listesi; varsayılan değer deps ürününde olduğu gibi çalışma zamanı sınıf yolunda görünür, ancak
üzerinde çalışmalıdır. Yalnızca çalışma zamanında gereken bağımlılıklar
burada görebilirsiniz. Bağımlılık analizi araçları,
runtime_deps ve deps .
|
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ğini ve ilgili
|
use_testrunner
|
Boole; varsayılan değer com.google.testing.junit.runner.BazelTestRunner ) sınıfını kullanın.
ana giriş noktasını kullanabilir ve test sınıfını
bazel.test_suite değeri olarak test koşucusuna atanır.
sistem özelliğini etkinleştirmelisiniz.
Varsayılan değeri geçersiz kılmak için bunu kullanabilirsiniz
yardımcı olmak için
test çalıştırıcısını kullanarak
java_test kural,
ve java_binary kuralları için kullanmayın. Düşük ihtimalle
bunu yapmanız gerekir. Bir kullanım AllTest içindir
başka bir kural tarafından çağrılan kurallar (veri tabanı
) girmeniz gerekir. AllTest
kuralı java_binary olarak tanımlanmalıdır, ancak
test çalıştırıcıyı ana giriş noktası olarak kullanmaya devam edebilirsiniz.
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ülejava_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 için kitaplıklar
java_binary
kural.
Ö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 değer 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 değer module öğesine yansıtıcı şekilde erişmesine izin ver veya
package .
Bu, javac ve JVM --add-opens= işaretlerine karşılık gelir. |
constraints
|
Dize listesi; varsayılan değer |
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 değer tools.jar
standart bir JDK olabilir.
|
proguard_specs
|
Etiket listesi; varsayılan değer android_binary hedefine eklenir.
Buraya eklenen dosyalar sadece ideaklı kurallara, yani -dontnote, -dontwarn,
yan etkileri ve -keep ile başlayan kuralları içerir. Diğer seçenekler yalnızca
android_binary öğesinin proguard_specs (totoolojik olmayan birleştirmeler için)
|
runtime_deps
|
Etiket listesi; varsayılan değer |
srcjar
|
Etiket; varsayılan değer |
java_library
Kural kaynağını görüntülejava_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ı bir .jar
dosyasında derler ve bağlar.
Dolaylı çı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 yorumları şu adreste bulabilirsiniz:
Genel özellikler
çoğu derleme kuralına bakın.
Buna karşılık, |
srcs
|
Etiket listesi; varsayılan değer
Kurallar: Kural (genellikle
Aynı boyutta en az bir dosya olduğu sürece diğer tüm dosyalar dosya türü olabilir. Aksi takdirde hata oluşur.
Bu bağımsız değişken, |
data
|
Etiket listesi; varsayılan değer data ile ilgili genel yorumları şu adreste bulabilirsiniz:
Genel özellikler
çoğu derleme kuralına bakın.
Bir |
resources
|
Etiket listesi; varsayılan değer Kaynaklar, kaynak dosyalar veya oluşturulan dosyalar olabilir.
Kaynaklar belirtilirse, normal kaynaklarla birlikte kavanozda paketlenir
Derleme, |
add_exports
|
Dize listesi; varsayılan değer 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 değer module öğesine yansıtıcı şekilde erişmesine izin ver veya
package .
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 listesi (ör. ek açıklama)
işlemcileri) doğrudan bu kitaplığa bağımlı kitaplıklara aktarmak için kullanılır.
Belirtilen |
exports
|
Etiket listesi; varsayılan değer
Burada listeleme kuralları, bunları üst kurallar tarafından sanki üst öğelerde olduğu gibi üst kurallarda kullanılabilir hale getirir
bu kurallara bağlıydı. Bu, normal (dışa aktarılmayan)
Özet: X kuralı, bir bağımlılık varsa Y içindeki koda erişebilir
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ştirmek ve A'yı yeniden oluşturmak,
her şeyi doğru şekilde yeniden yapabilir. Ancak A, C sınıfındaki sınıfları kullanamaz. İzin vermek için
A'nın Dışa aktarılan kitaplıklar, tüm doğrudan üst kurallar tarafından kapatılabilir. Biraz çekin farklı örnek: A B'ye, 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 bazı kitaplıkları dışa aktardıysa C'yi ve D' sırasıyla, A yalnızca C'ye erişebilir. ancak D' ile değil.
Önemli: Dışa aktarılan kurallar normal bir bağımlılık değildir. Önceki örneğe devam edecek olursak
B, C'yi dışa aktarıyor ve C'yi de kullanmak istiyorsa bunu 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 bu tür kitaplıklardan biridir
çalışıyordum.
Çalışma zamanı kitaplığı, derleme kitaplığından farklıysa yalnızca JLS'nin derleyicilerin satır içi yapmasını yasakladığı (ve JLS'nin gelecekteki tüm sürümleri). |
plugins
|
Etiket listesi; varsayılan değer java_plugin bu kuralla birlikte çalıştırılır
geliştirildi. Bir kitaplık,
exported_plugins Kaynaklar
oluşturulan dosya, bu kuralın ortaya çıkan jar'ına dahil edilir.
|
proguard_specs
|
Etiket listesi; varsayılan değer android_binary hedefine eklenir.
Buraya eklenen dosyalar sadece ideaklı kurallara, yani -dontnote, -dontwarn,
yan etkileri ve -keep ile başlayan kuralları içerir. Diğer seçenekler yalnızca
android_binary öğesinin proguard_specs (totoolojik olmayan birleştirmeler için)
|
resource_strip_prefix
|
String; varsayılan değer
Belirtilirse bu yol öneki |
runtime_deps
|
Etiket listesi; varsayılan değer deps ürününde olduğu gibi çalışma zamanı sınıf yolunda görünür, ancak
üzerinde çalışmalıdır. Yalnızca çalışma zamanında gereken bağımlılıklar
burada görebilirsiniz. Bağımlılık analizi araçları,
runtime_deps ve deps .
|
java_lite_proto_library
Kural kaynağını görüntülejava_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
kuralı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 listesi
kurallarını belirtin.
|
java_proto_library
Kural kaynağını görüntülejava_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
kuralı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 listesi
kurallarını belirtin.
|
java_test
Kural kaynağını görüntülejava_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, projenizdeki
test kodu. 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
: Uygun bir Java arşivi . (Yalnızca açıkça talep edildiğinde oluşturulur.) Şu açıklamaya bakın: Şu kaynaktanname_deploy.jar
çıkış: java_binary'yi ziyaret edin.
java_binary()
bağımsız değişkenleriyle ilgili bölüme bakın. Bu kural ayrıca
tüm özellikleri destekler.
(*_test) testine tabi tutun.
Ö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 yorumları şu adreste bulabilirsiniz:
Genel özellikler
çoğu derleme kuralına bakın.
|
srcs
|
Etiket listesi; varsayılan değer
Kurallar: Kural (genellikle
Bu bağımsız değişken,
|
data
|
Etiket listesi; varsayılan değer data ile ilgili genel yorumları göster
tarafından tanımlanan tipik
çoğu derleme kuralına bakın.
|
resources
|
Etiket listesi; varsayılan değer Kaynaklar, kaynak dosyalar veya oluşturulan dosyalar olabilir.
Kaynaklar belirtilirse, normal kaynaklarla birlikte kavanozda paketlenir
Derleme, |
add_exports
|
Dize listesi; varsayılan değer 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 değer module öğesine yansıtıcı şekilde erişmesine izin ver veya
package .
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ünde bulunması gereken kaynakların listesi. Bu özelliğin
tek amacı, kaynaklarının kullanımını gerektiren üçüncü taraf kitaplıkları desteklemektir
sınıf yolunda tam olarak |
create_executable
|
Boole; varsayılan değer java_single_jar politikasını kullanın.
|
deploy_manifest_lines
|
Dize listesi; varsayılan değer META-INF/manifest.mf dosyasına eklenecek satırların listesi
*_deploy.jar hedef. Bu özelliğin içeriği konu değildir
"Değişken yap" olarak değiştirin.
|
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çeriyor
(bağımlı tüm jar'ları bulmak için) kullanır 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 ve ardından Bu özelliğin |
launcher
|
Etiket; varsayılan değer bin/java programı JDK'ya dahildir.
Hedef bir cc_binary olmalıdır. Şu özelliklere sahip herhangi bir cc_binary :
,
Bu özellik için bir değer olarak Java Invocation API 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 farklı şekilde oluşturulacağını unutmayın JDK başlatıcıyı mı yoksa başka bir başlatıcıyı mı kullandığınıza bağlı olarak:
Varsayılan JDK başlatıcı dışında herhangi bir başlatıcıyı kullanırken biçim,
|
main_class
|
String; 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, önceden hazırlanmış bir Java kitaplığından yürütülebilir bir dosya
bir veya daha fazla main() yöntemi içerir.
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: bu kural tarafından derlenmiş olabilir ( |
neverlink
|
Boole; varsayılan değer |
plugins
|
Etiket listesi; varsayılan değer java_plugin bu kuralla birlikte çalıştırılır
geliştirildi. Bir kitaplık,
exported_plugins Kaynaklar
oluşturulan dosya, bu kuralın ortaya çıkan jar'ına dahil edilir.
|
resource_strip_prefix
|
String; varsayılan değer
Belirtilirse bu yol öneki |
runtime_deps
|
Etiket listesi; varsayılan değer deps ürününde olduğu gibi çalışma zamanı sınıf yolunda görünür, ancak
üzerinde çalışmalıdır. Yalnızca çalışma zamanında gereken bağımlılıklar
burada görebilirsiniz. Bağımlılık analizi araçları,
runtime_deps ve deps .
|
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
|
String; 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, çalıştırılacak bir Java sınıfının adını belirtir
inceleyeceğiz. 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, birden fazla |
use_launcher
|
Boole; varsayılan değer Bu özellik false (yanlış) değerine ayarlanırsa
Başlatıcı özelliğini ve ilgili
|
use_testrunner
|
Boole; varsayılan değer com.google.testing.junit.runner.BazelTestRunner ) sınıfını kullanın.
ana giriş noktasını kullanabilir ve test sınıfını
bazel.test_suite değeri olarak test koşucusuna atanır.
sistem özelliğini etkinleştirmelisiniz.
. Varsayılan değeri geçersiz kılmak için bunu kullanabilirsiniz yardımcı olmak için test çalıştırıcısını kullanarak java_test kural,
ve java_binary kuralları için kullanmayın. Düşük ihtimalle
bunu yapmanız gerekir. Bir kullanım AllTest içindir
başka bir kural tarafından çağrılan kurallar (veri tabanı
) girmeniz gerekir. AllTest
kuralı java_binary olarak tanımlanmalıdır, ancak
test çalıştırıcıyı ana giriş noktası olarak kullanmaya devam edebilirsiniz.
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ülejava_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
sn.
Ö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 değer |
output_licenses
|
Dize listesi; varsayılan değer |
packages
|
Etiket listesi; varsayılan değer package_group kümesi
karar vermelisiniz.
|
java_plugin
Kural kaynağını görüntülejava_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. İlgili içeriği oluşturmak için kullanılan
yalnızca desteklenen tür eklentileri ek açıklama işlemcileridir. java_library
veya
java_binary
kuralı, plugins
aracılığıyla eklentilere bağlı olarak eklentileri çalıştırabilir.
özelliğini gönderin. Ayrıca java_library
, eklentileri
ona doğrudan bağımlıysa
exported_plugins
.
Dolaylı çıkış hedefleri
libname.jar
: Bir Java arşivi.
Bağımsız değişkenler java_library
ile aynıdır, ancak şu durumlar hariçtir:
processor_class
bağımsız değişkeninin eklenmesi gerekir.
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 yorumları şu adreste bulabilirsiniz:
Genel özellikler
çoğu derleme kuralına bakın.
Buna karşılık, |
srcs
|
Etiket listesi; varsayılan değer
Kurallar: Kural (genellikle
Aynı boyutta en az bir dosya olduğu sürece diğer tüm dosyalar dosya türü olabilir. Aksi takdirde hata oluşur.
Bu bağımsız değişken, |
data
|
Etiket listesi; varsayılan değer data ile ilgili genel yorumları şu adreste bulabilirsiniz:
Genel özellikler
çoğu derleme kuralına bakın.
Bir |
resources
|
Etiket listesi; varsayılan değer Kaynaklar, kaynak dosyalar veya oluşturulan dosyalar olabilir.
Kaynaklar belirtilirse, normal kaynaklarla birlikte kavanozda paketlenir
Derleme, |
add_exports
|
Dize listesi; varsayılan değer 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 değer module öğesine yansıtıcı şekilde erişmesine izin ver veya
package .
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 ek açıklama işlemcisi kullanıyorsa diğer kurallar kendileri oluşturulan koda yalnızca derleme işlemleri, oluşturma kuralından sonra programlanır. Bu özelliğinin değeri, Bazel'a --java_header_compilation etkin. UYARI: Bu özellik, derlemeyi yalnızca gerekli olduğunda 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 bu tür kitaplıklardan biridir
çalışıyordum.
Çalışma zamanı kitaplığı, derleme kitaplığından farklıysa yalnızca JLS'nin derleyicilerin satır içi yapmasını yasakladığı (ve JLS'nin gelecekteki tüm sürümleri). |
output_licenses
|
Dize listesi; varsayılan değer |
plugins
|
Etiket listesi; varsayılan değer java_plugin bu kuralla birlikte çalıştırılır
geliştirildi. Bir kitaplık,
exported_plugins Kaynaklar
oluşturulan dosya, bu kuralın ortaya çıkan jar'ına dahil edilir.
|
processor_class
|
String; varsayılan değer |
proguard_specs
|
Etiket listesi; varsayılan değer android_binary hedefine eklenir.
Buraya eklenen dosyalar sadece ideaklı kurallara, yani -dontnote, -dontwarn,
yan etkileri ve -keep ile başlayan kuralları içerir. Diğer seçenekler yalnızca
android_binary öğesinin proguard_specs (totoolojik olmayan birleştirmeler için)
|
resource_strip_prefix
|
String; varsayılan değer
Belirtilirse bu yol öneki |
java_runtime
Kural kaynağını görüntülejava_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. Hermetik
java_binary hedefi için etkinleştirilirse ve hedef yoksa
adresini belirterek kendi CDS arşivini sağlayabilir
classlist özelliği,
java_runtime varsayılan CDS'si, hermetik dağıtım JAR içinde paketlenmiştir.
|
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
|
String; 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 yolunda, yolu şununla biten tam olarak bir dosya var:
/lib/ct.sym dosyası 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()
|
java_toolchain
Kural kaynağını görüntülejava_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 derleyici yapılandırmasını belirtir. Kullanılacak araç zinciri, --java_toolchain bağımsız değişkenini kullanır. Normalde bu tür kuralları siz istemeden Java derleyicinizi ayarlayın.
Ö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; 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 değer |
android_lint_opts
|
Dize listesi; varsayılan değer |
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; 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ç, not 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 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
|
Etiket listesi; varsayılan değer |
jspecify_processor
|
Etiket; varsayılan değer |
jspecify_processor_class
|
String; varsayılan değer |
jspecify_stubs
|
Etiket 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_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 değer |
singlejar
|
Etiket; varsayılan değer |
source_version
|
String; varsayılan değer |
target_version
|
String; 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 değer |
xlint
|
Dize listesi; varsayılan değer |