Règles
- 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
Afficher la source de la règlejava_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)
Crée une archive Java ("fichier JAR") et un script shell wrapper portant le même nom que la règle.
Le script shell de wrapper utilise un chemin de classe qui inclut, entre autres, un fichier JAR pour chaque bibliothèque dont dépend le binaire. Lors de l'exécution du script shell de wrapper, toute variable d'environnement JAVABIN
non vide est prioritaire sur la version spécifiée via l'option --java_runtime_version
de Bazel.
Le script wrapper accepte plusieurs indicateurs uniques. Reportez-vous à //src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
pour obtenir la liste des indicateurs configurables et des variables d'environnement acceptés par le wrapper.
Objectifs de résultats implicites
name.jar
: archive Java contenant les fichiers de classe et d'autres ressources correspondant aux dépendances directes du binaire.name-src.jar
: archive contenant les sources ("JAR source").name_deploy.jar
: archive Java adaptée au déploiement (créée uniquement sur demande explicite).La création de la cible
<name>_deploy.jar
pour votre règle entraîne la création d'un fichier JAR autonome avec un fichier manifeste qui permet de l'exécuter à l'aide de la commandejava -jar
ou de l'option--singlejar
du script wrapper. Il est préférable d'utiliser le script wrapperjava -jar
, car il transmet également les indicateurs JVM et les options permettant de charger des bibliothèques natives.Le fichier JAR de déploiement contient toutes les classes qui seraient trouvées par un ClassLoader qui recherche du début à la fin le classpath à partir du script du wrapper du binaire. Il contient également les bibliothèques natives nécessaires aux dépendances. Ceux-ci sont automatiquement chargés dans la JVM au moment de l'exécution.
Si votre cible spécifie un attribut launcher, le fichier _deploy.jar sera un fichier binaire natif au lieu d'être un fichier JAR normal. Il contiendra le lanceur d'applications et toutes les dépendances natives (C++) de votre règle, le tout lié à un binaire statique. Les octets réels du fichier JAR seront ajoutés à ce binaire natif, créant ainsi un seul blob binaire contenant à la fois l'exécutable et le code Java. Vous pouvez exécuter le fichier JAR obtenu directement comme vous exécuteriez n'importe quel binaire natif.
name_deploy-src.jar
: archive contenant les sources collectées lors de la fermeture transitive de la cible. Elles correspondront aux classes dedeploy.jar
, sauf lorsque les fichiers JAR n'ont pas de fichier JAR source correspondant.
Un attribut deps
n'est pas autorisé dans une règle java_binary
sans srcs
. Une telle règle nécessite un main_class
fourni par runtime_deps
.
L'extrait de code suivant illustre une erreur courante:
java_binary( name = "DontDoThis", srcs = [ ..., "GeneratedJavaFile.java", # a generated .java file ], deps = [":generating_rule"], # rule that generates that file )
Procédez plutôt comme suit:
java_binary( name = "DoThisInstead", srcs = [ ..., ":generating_rule", ], )
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. Il est recommandé d'utiliser le nom du fichier source qui est le point d'entrée principal de l'application (moins l'extension). Par exemple, si votre point d'entrée s'appelle Main.java , votre nom pourrait être Main .
|
deps
|
Liste des libellés ; la valeur par défaut est deps dans la section Attributs standards définis par la plupart des règles de compilation.
|
srcs
|
Liste des libellés ; la valeur par défaut est
Les fichiers sources de type
Les fichiers sources de type
Règles: si la règle (généralement
Cet argument est presque toujours obligatoire, sauf si un attribut |
resources
|
Liste des libellés ; la valeur par défaut est
Si des ressources sont spécifiées, elles seront regroupées dans le fichier JAR avec les fichiers Les ressources peuvent être des fichiers sources ou générés. |
classpath_resources
|
Liste des libellés ; la valeur par défaut est
Liste des ressources qui doivent être situées à la racine de l'arborescence Java. La seule fonction de cet attribut est d'accepter les bibliothèques tierces qui exigent que leurs ressources se trouvent sur le chemin de classe avec la valeur |
create_executable
|
Booléen ; non configurable ; la valeur par défaut est java_single_jar .
|
deploy_env
|
Liste des libellés ; la valeur par défaut est java_binary représentant l'environnement de déploiement pour ce binaire.
Définissez cet attribut lors de la création d'un plug-in qui sera chargé par un autre java_binary .La définition de cet attribut exclut toutes les dépendances du classpath d'exécution (et du fichier JAR de déploiement) de ce binaire, qui sont partagées entre ce binaire et les cibles spécifiées dans deploy_env .
|
deploy_manifest_lines
|
Liste de chaînes ; la valeur par défaut est META-INF/manifest.mf généré pour la cible *_deploy.jar . Le contenu de cet attribut n'est pas soumis au remplacement de "Make variable".
|
javacopts
|
Liste de chaînes ; la valeur par défaut est Ces options du compilateur sont transmises à javac après les options globales du compilateur. |
jvm_flags
|
Liste de chaînes ; la valeur par défaut est Le script wrapper d'un binaire Java inclut une définition de CLASSPATH (pour trouver tous les fichiers JAR dépendants) et appelle l'interpréteur Java approprié.
La ligne de commande générée par le script wrapper inclut le nom de la classe principale suivi d'un élément Notez que cet attribut n'a aucun effet sur les sorties |
launcher
|
Libellé ; la valeur par défaut est bin/java normal inclus avec le JDK.
La cible doit être une cc_binary . Tout cc_binary qui implémente l'
API d'appel Java peut être spécifié en tant que valeur pour cet attribut.
Par défaut, Bazel utilise le lanceur JDK standard (bin/java ou java.exe). L'indicateur Bazel Notez que vos dépendances natives (C++, SWIG, JNI) seront compilées différemment selon que vous utilisez le lanceur JDK ou un autre lanceur:
Lorsque vous utilisez un lanceur d'applications autre que le lanceur JDK par défaut, le format de la sortie |
main_class
|
Chaîne ; la valeur par défaut est main() à utiliser comme point d'entrée.
Si une règle utilise cette option, elle n'a pas besoin de liste srcs=[...] .
Ainsi, cet attribut permet de créer un exécutable à partir d'une bibliothèque Java contenant déjà une ou plusieurs méthodes main() .
La valeur de cet attribut est un nom de classe et non un fichier source. La classe doit être disponible au moment de l'exécution: elle peut être compilée à l'aide de cette règle (à partir de |
plugins
|
Liste des libellés ; la valeur par défaut est java_plugin spécifiée dans cet attribut sera exécutée chaque fois que cette règle sera créée. Une bibliothèque peut également hériter des plug-ins des dépendances qui utilisent exported_plugins . Les ressources générées par le plug-in seront incluses dans le fichier JAR résultant de cette règle.
|
resource_jars
|
Liste des libellés ; la valeur par défaut est |
resource_strip_prefix
|
Chaîne ; la valeur par défaut est
S'il est spécifié, ce préfixe de chemin d'accès est supprimé de chaque fichier dans l'attribut |
runtime_deps
|
Liste des libellés ; la valeur par défaut est deps ordinaires, ces valeurs apparaissent sur le classpath d'exécution, mais contrairement à elles, et non sur le classpath au moment de la compilation. Les dépendances nécessaires uniquement au moment de l'exécution doivent être listées ici. Les outils d'analyse des dépendances doivent ignorer les cibles qui apparaissent à la fois dans runtime_deps et deps .
|
stamp
|
Entier ; la valeur par défaut est
Les binaires estampés ne sont pas recréés, sauf si leurs dépendances changent. |
use_launcher
|
Booléen ; la valeur par défaut est Si cet attribut est défini sur "false", l'attribut launcher et l'indicateur |
use_testrunner
|
Booléen ; la valeur par défaut est com.google.testing.junit.runner.BazelTestRunner ) comme point d'entrée principal d'un programme Java et fournissez la classe de test au lanceur de test en tant que valeur de la propriété système bazel.test_suite .
Vous pouvez l'utiliser pour ignorer le comportement par défaut, qui consiste à utiliser le lanceur de test pour les règles java_test , et non pour les règles java_binary . Vous ne souhaiterez probablement pas effectuer cette opération. Une utilisation est possible pour les règles AllTest appelées par une autre règle (par exemple, pour configurer une base de données avant d'exécuter les tests). La règle AllTest doit être déclarée en tant que java_binary , mais doit toujours utiliser le lanceur de test comme point d'entrée principal.
Le nom d'une classe de lanceur de test peut être remplacé par l'attribut main_class .
|
java_import
Afficher la source de la règlejava_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)
Cette règle autorise l'utilisation de fichiers .jar
précompilés en tant que bibliothèques pour les règles java_library
et java_binary
.
Exemples
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",
],
)
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. |
deps
|
Liste des libellés ; la valeur par défaut est |
data
|
Liste des libellés ; la valeur par défaut est |
add_exports
|
Liste de chaînes ; la valeur par défaut est module ou au package donné.
Cela correspond aux indicateurs javac et JVM --add-exports=. |
add_opens
|
Liste de chaînes ; la valeur par défaut est module ou au package donné.
Cela correspond aux indicateurs javac et JVM --add-opens=. |
constraints
|
Liste de chaînes ; la valeur par défaut est |
exports
|
Liste des libellés ; la valeur par défaut est |
jars
|
Liste des libellés (obligatoire) Liste des fichiers JAR fournis aux cibles Java qui en dépendent. |
neverlink
|
Booléen ; la valeur par défaut est tools.jar pour tout ce qui s'exécute sur un JDK standard.
|
proguard_specs
|
Liste des libellés ; la valeur par défaut est android_binary en fonction de cette bibliothèque.
Les fichiers inclus ici ne doivent comporter que des règles idempotentes, à savoir -dontnote, -dontwarn, assumenosideeffects et commençant par -keep. D'autres options ne peuvent apparaître que dans proguard_specs de android_binary , pour garantir les fusions non tautologiques.
|
runtime_deps
|
Liste des libellés ; la valeur par défaut est |
srcjar
|
Libellé ; la valeur par défaut est |
java_library
Afficher la source de la règlejava_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)
Cette règle compile et associe les sources dans un fichier .jar
.
Sorties implicites
libname.jar
: archive Java contenant les fichiers de classe.libname-src.jar
: archive contenant les sources ("JAR source").
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. |
deps
|
Liste des libellés ; la valeur par défaut est deps dans la section Attributs classiques définis par la plupart des règles de compilation.
Les fichiers JAR créés par les règles
En revanche, les cibles de l'attribut |
srcs
|
Liste des libellés ; la valeur par défaut est
Les fichiers sources de type
Les fichiers sources de type
Règles: si la règle (généralement
Les fichiers sources de type Tous les autres fichiers sont ignorés, à condition qu'il existe au moins un fichier d'un type décrit ci-dessus. Sinon, une erreur est générée.
Cet argument est presque toujours obligatoire, sauf si vous spécifiez l'argument |
data
|
Liste des libellés ; la valeur par défaut est data dans la section Attributs classiques définis par la plupart des règles de compilation.
Lors de la création d'un |
resources
|
Liste des libellés ; la valeur par défaut est Les ressources peuvent être des fichiers sources ou générés.
Si des ressources sont spécifiées, elles seront regroupées dans le fichier JAR avec les fichiers |
add_exports
|
Liste de chaînes ; la valeur par défaut est module ou au package donné.
Cela correspond aux indicateurs javac et JVM --add-exports=. |
add_opens
|
Liste de chaînes ; la valeur par défaut est module ou au package donné.
Cela correspond aux indicateurs javac et JVM --add-opens=. |
bootclasspath
|
Libellé ; la valeur par défaut est |
exported_plugins
|
Liste des libellés ; la valeur par défaut est java_plugin (processeurs d'annotations, par exemple) à exporter vers les bibliothèques qui en dépendent directement.
La liste de |
exports
|
Liste des libellés ; la valeur par défaut est
Les règles listées ici les rendront disponibles pour les règles parentes, comme si les parents en dépendaient explicitement. Ce n'est pas le cas pour les
Résumé: Une règle X peut accéder au code dans Y s'il existe un chemin de dépendance entre elles qui commence par une arête
Supposons que A dépend de B et que B dépend de C. Dans le cas présent, C est une dépendance transitive de A. Par conséquent, le fait de modifier les sources de C et de recompiler A permet de tout reconstruire correctement. Toutefois, A ne pourra pas utiliser de classes dans C. Pour ce faire, A doit déclarer C dans son La fermeture des bibliothèques exportées est disponible pour toutes les règles parentes directes. Prenons un exemple légèrement différent: A dépend de B, B dépend de C et D, et exporte également C, mais pas D. Maintenant, A a accès à C, mais pas à D. Maintenant, si C et D exportaient certaines bibliothèques, respectivement C' et D', A ne pourrait accéder qu'à C', mais pas à D'.
Important: Une règle exportée n'est pas une dépendance standard. Reprenons l'exemple précédent : si B exporte C et souhaite également utiliser C, il doit également le répertorier dans son propre |
javabuilder_jvm_flags
|
Liste de chaînes ; la valeur par défaut est |
javacopts
|
Liste de chaînes ; la valeur par défaut est Ces options du compilateur sont transmises à javac après les options globales du compilateur. |
neverlink
|
Booléen ; la valeur par défaut est tools.jar pour tout ce qui s'exécute sur un JDK standard sont des exemples de ces bibliothèques.
Notez que Si la bibliothèque d'exécution diffère de la bibliothèque de compilation, vous devez vous assurer qu'elle ne diffère que sur les emplacements que le JLS interdit d'intégrer aux compilateurs (et qui doivent être conservés pour toutes les futures versions du JLS). |
plugins
|
Liste des libellés ; la valeur par défaut est java_plugin spécifié dans cet attribut sera exécuté à chaque fois que cette règle est créée. Une bibliothèque peut également hériter des plug-ins des dépendances qui utilisent exported_plugins . Les ressources générées par le plug-in seront incluses dans le fichier JAR résultant de cette règle.
|
proguard_specs
|
Liste des libellés ; la valeur par défaut est android_binary en fonction de cette bibliothèque.
Les fichiers inclus ici ne doivent comporter que des règles idempotentes, à savoir -dontnote, -dontwarn, assumenosideeffects et commençant par -keep. D'autres options ne peuvent apparaître que dans proguard_specs de android_binary , pour garantir les fusions non tautologiques.
|
resource_strip_prefix
|
Chaîne ; la valeur par défaut est
S'il est spécifié, ce préfixe de chemin d'accès est supprimé de chaque fichier dans l'attribut |
runtime_deps
|
Liste des libellés ; la valeur par défaut est deps ordinaires, ces valeurs apparaissent sur le classpath d'exécution, mais contrairement à elles, et non sur le classpath au moment de la compilation. Les dépendances nécessaires uniquement au moment de l'exécution doivent être listées ici. Les outils d'analyse des dépendances doivent ignorer les cibles qui apparaissent à la fois dans runtime_deps et deps .
|
java_lite_proto_library
Afficher la source de la règlejava_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
génère du code Java à partir de fichiers .proto
.
deps
doit pointer vers les règles proto_library
.
Exemple :
java_library(
name = "lib",
runtime_deps = [":foo"],
)
java_lite_proto_library(
name = "foo",
deps = [":bar"],
)
proto_library(
name = "bar",
)
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. |
deps
|
Liste des libellés ; la valeur par défaut est proto_library pour lesquelles générer du code Java.
|
java_proto_library
Afficher la source de la règlejava_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
génère du code Java à partir de fichiers .proto
.
deps
doit pointer vers les règles proto_library
.
Exemple :
java_library(
name = "lib",
runtime_deps = [":foo_java_proto"],
)
java_proto_library(
name = "foo_java_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. |
deps
|
Liste des libellés ; la valeur par défaut est proto_library pour lesquelles générer du code Java.
|
java_test
Afficher la source de la règlejava_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)
Une règle java_test()
compile un test Java. Un test est un wrapper binaire autour de votre code de test. La méthode principale du lanceur de test est appelée au lieu de la classe principale en cours de compilation.
Objectifs de résultats implicites
name.jar
: archive Java.name_deploy.jar
: archive Java adaptée au déploiement. (créé uniquement sur demande explicite). Pour en savoir plus, consultez la description de la sortiename_deploy.jar
de java_binary.
Consultez la section sur les arguments java_binary()
. Cette règle accepte également tous les attributs communs à toutes les règles de test (*_test).
Exemples
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",
],
)
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. |
deps
|
Liste des libellés ; la valeur par défaut est deps dans la section Attributs classiques définis par la plupart des règles de compilation.
|
srcs
|
Liste des libellés ; la valeur par défaut est
Les fichiers sources de type
Les fichiers sources de type
Règles: si la règle (généralement
Cet argument est presque toujours obligatoire, sauf si un attribut |
data
|
Liste des libellés ; la valeur par défaut est data dans la section Attributs standards définis par la plupart des règles de compilation.
|
resources
|
Liste des libellés ; la valeur par défaut est Les ressources peuvent être des fichiers sources ou générés.
Si des ressources sont spécifiées, elles seront regroupées dans le fichier JAR avec les fichiers |
add_exports
|
Liste de chaînes ; la valeur par défaut est module ou au package donné.
Cela correspond aux indicateurs javac et JVM --add-exports=. |
add_opens
|
Liste de chaînes ; la valeur par défaut est module ou au package donné.
Cela correspond aux indicateurs javac et JVM --add-opens=. |
bootclasspath
|
Libellé ; la valeur par défaut est |
classpath_resources
|
Liste des libellés ; la valeur par défaut est
Liste des ressources qui doivent être situées à la racine de l'arborescence Java. Le seul objectif de cet attribut est d'accepter les bibliothèques tierces qui exigent que leurs ressources soient trouvées sur le chemin de classe avec la valeur |
create_executable
|
Booléen ; la valeur par défaut est java_single_jar .
|
deploy_manifest_lines
|
Liste de chaînes ; la valeur par défaut est META-INF/manifest.mf généré pour la cible *_deploy.jar . Le contenu de cet attribut n'est pas soumis au remplacement de "Make variable".
|
javacopts
|
Liste de chaînes ; la valeur par défaut est Ces options du compilateur sont transmises à javac après les options globales du compilateur. |
jvm_flags
|
Liste de chaînes ; la valeur par défaut est Le script wrapper d'un binaire Java inclut une définition de CLASSPATH (pour trouver tous les fichiers JAR dépendants) et appelle l'interpréteur Java approprié.
La ligne de commande générée par le script wrapper inclut le nom de la classe principale suivi d'un élément Notez que cet attribut n'a aucun effet sur les sorties |
launcher
|
Libellé ; la valeur par défaut est bin/java normal inclus avec le JDK.
La cible doit être une cc_binary . Tout cc_binary qui implémente l'
API d'appel Java peut être spécifié en tant que valeur pour cet attribut.
Par défaut, Bazel utilise le lanceur JDK standard (bin/java ou java.exe). L'indicateur Bazel Notez que vos dépendances natives (C++, SWIG, JNI) seront compilées différemment selon que vous utilisez le lanceur JDK ou un autre lanceur:
Lorsque vous utilisez un lanceur d'applications autre que le lanceur JDK par défaut, le format de la sortie |
main_class
|
Chaîne ; la valeur par défaut est main() à utiliser comme point d'entrée.
Si une règle utilise cette option, elle n'a pas besoin de liste srcs=[...] .
Ainsi, cet attribut permet de créer un exécutable à partir d'une bibliothèque Java contenant déjà une ou plusieurs méthodes main() .
La valeur de cet attribut est un nom de classe et non un fichier source. La classe doit être disponible au moment de l'exécution: elle peut être compilée par cette règle (à partir de |
neverlink
|
Booléen ; la valeur par défaut est |
plugins
|
Liste des libellés ; la valeur par défaut est java_plugin spécifié dans cet attribut sera exécuté à chaque fois que cette règle est créée. Une bibliothèque peut également hériter des plug-ins des dépendances qui utilisent exported_plugins . Les ressources générées par le plug-in seront incluses dans le fichier JAR résultant de cette règle.
|
resource_strip_prefix
|
Chaîne ; la valeur par défaut est
S'il est spécifié, ce préfixe de chemin d'accès est supprimé de chaque fichier dans l'attribut |
runtime_deps
|
Liste des libellés ; la valeur par défaut est deps ordinaires, ces valeurs apparaissent sur le classpath d'exécution, mais contrairement à elles, et non sur le classpath au moment de la compilation. Les dépendances nécessaires uniquement au moment de l'exécution doivent être listées ici. Les outils d'analyse des dépendances doivent ignorer les cibles qui apparaissent à la fois dans runtime_deps et deps .
|
stamp
|
Entier ; la valeur par défaut est
Les binaires estampés ne sont pas recréés, sauf si leurs dépendances changent. |
test_class
|
Chaîne ; la valeur par défaut est
Par défaut, si cet argument n'est pas défini, l'ancien mode est utilisé et les arguments de test sont utilisés à la place. Définissez l'option
Cet attribut spécifie le nom d'une classe Java à exécuter par ce test. Il est rare d'avoir besoin de définir cela. Si cet argument est omis, il sera déduit à l'aide de l'élément
Pour JUnit3, la classe de test doit être une sous-classe de
Cet attribut permet à plusieurs règles |
use_launcher
|
Booléen ; la valeur par défaut est Si cet attribut est défini sur "false", l'attribut launcher et l'indicateur |
use_testrunner
|
Booléen ; la valeur par défaut est com.google.testing.junit.runner.BazelTestRunner par défaut) comme point d'entrée principal d'un programme Java et fournissez la classe de test au lanceur de test en tant que valeur de la propriété système bazel.test_suite .
Vous pouvez utiliser cette option pour ignorer le comportement par défaut, qui consiste à utiliser le lanceur de test pour les règles java_test , et non pour les règles java_binary . Il est peu probable
que vous le fassiez. Une utilisation est possible pour les règles AllTest appelées par une autre règle (par exemple, pour configurer une base de données avant d'exécuter les tests). La règle AllTest doit être déclarée en tant que java_binary , mais doit toujours utiliser le lanceur de test comme point d'entrée principal.
Le nom d'une classe de lanceur de test peut être remplacé par l'attribut main_class .
|
java_package_configuration
Afficher la source de la règlejava_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)
Configuration à appliquer à un ensemble de packages.
Les configurations peuvent être ajoutées aux java_toolchain.javacopts
s.
Exemple :
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",
]
)
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. |
data
|
Liste des libellés ; la valeur par défaut est |
javacopts
|
Liste de chaînes ; la valeur par défaut est |
output_licenses
|
Liste de chaînes ; la valeur par défaut est |
packages
|
Liste des libellés ; la valeur par défaut est package_group auxquelles la configuration doit être appliquée.
|
java_plugin
Afficher la source de la règlejava_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
définit les plug-ins pour le compilateur Java exécuté par Bazel. Pour le moment, les processeurs d'annotations sont les seuls types de plug-ins compatibles. Une règle java_library
ou java_binary
peut exécuter des plug-ins en fonction de ceux-ci via l'attribut plugins
. Un java_library
peut également exporter automatiquement des plug-ins vers des bibliothèques qui en dépendent directement à l'aide de exported_plugins
.
Objectifs de résultats implicites
libname.jar
: archive Java.
Les arguments sont identiques à java_library
, à l'exception de l'ajout de l'argument processor_class
.
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. |
deps
|
Liste des libellés ; la valeur par défaut est deps dans la section Attributs classiques définis par la plupart des règles de compilation.
Les fichiers JAR créés par les règles
En revanche, les cibles de l'attribut |
srcs
|
Liste des libellés ; la valeur par défaut est
Les fichiers sources de type
Les fichiers sources de type
Règles: si la règle (généralement
Les fichiers sources de type Tous les autres fichiers sont ignorés, à condition qu'il existe au moins un fichier d'un type décrit ci-dessus. Sinon, une erreur est générée.
Cet argument est presque toujours obligatoire, sauf si vous spécifiez l'argument |
data
|
Liste des libellés ; la valeur par défaut est data dans la section Attributs classiques définis par la plupart des règles de compilation.
Lors de la création d'un |
resources
|
Liste des libellés ; la valeur par défaut est Les ressources peuvent être des fichiers sources ou générés.
Si des ressources sont spécifiées, elles seront regroupées dans le fichier JAR avec les fichiers |
add_exports
|
Liste de chaînes ; la valeur par défaut est module ou au package donné.
Cela correspond aux indicateurs javac et JVM --add-exports=. |
add_opens
|
Liste de chaînes ; la valeur par défaut est module ou au package donné.
Cela correspond aux indicateurs javac et JVM --add-opens=. |
bootclasspath
|
Libellé ; la valeur par défaut est |
generates_api
|
Booléen ; la valeur par défaut est Si une règle utilise un processeur d'annotations générant des API, les autres règles qui dépendent de celle-ci ne peuvent faire référence au code généré que si leurs actions de compilation sont planifiées après la règle de génération. Cet attribut indique à Bazel d'introduire des contraintes de planification lorsque l'option --java_header_compilation est activée. AVERTISSEMENT: Cet attribut affecte les performances de compilation. Utilisez-le uniquement si nécessaire. |
javabuilder_jvm_flags
|
Liste de chaînes ; la valeur par défaut est |
javacopts
|
Liste de chaînes ; la valeur par défaut est Ces options du compilateur sont transmises à javac après les options globales du compilateur. |
neverlink
|
Booléen ; la valeur par défaut est tools.jar pour tout ce qui s'exécute sur un JDK standard sont des exemples de ces bibliothèques.
Notez que Si la bibliothèque d'exécution diffère de la bibliothèque de compilation, vous devez vous assurer qu'elle ne diffère que sur les emplacements que le JLS interdit d'intégrer aux compilateurs (et qui doivent être conservés pour toutes les futures versions du JLS). |
output_licenses
|
Liste de chaînes ; la valeur par défaut est |
plugins
|
Liste des libellés ; la valeur par défaut est java_plugin spécifié dans cet attribut sera exécuté à chaque fois que cette règle est créée. Une bibliothèque peut également hériter des plug-ins des dépendances qui utilisent exported_plugins . Les ressources générées par le plug-in seront incluses dans le fichier JAR résultant de cette règle.
|
processor_class
|
Chaîne ; la valeur par défaut est |
proguard_specs
|
Liste des libellés ; la valeur par défaut est android_binary en fonction de cette bibliothèque.
Les fichiers inclus ici ne doivent comporter que des règles idempotentes, à savoir -dontnote, -dontwarn, assumenosideeffects et commençant par -keep. D'autres options ne peuvent apparaître que dans proguard_specs de android_binary , pour garantir les fusions non tautologiques.
|
resource_strip_prefix
|
Chaîne ; la valeur par défaut est
S'il est spécifié, ce préfixe de chemin d'accès est supprimé de chaque fichier dans l'attribut |
java_runtime
Afficher la source de la règlejava_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)
Spécifie la configuration d'un environnement d'exécution Java.
Exemple :
java_runtime(
name = "jdk-9-ea+153",
srcs = glob(["jdk9-ea+153/**"]),
java_home = "jdk9-ea+153",
)
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. |
srcs
|
Liste des libellés ; la valeur par défaut est |
default_cds
|
Libellé ; la valeur par défaut est java_runtime hermétique. Lorsque le mode Hermétique est activé pour une cible java_binary et que la cible ne fournit pas sa propre archive CDS en spécifiant l'attribut classlist , le CDS par défaut java_runtime est empaqueté dans le fichier JAR de déploiement hermétique.
|
hermetic_srcs
|
Liste des libellés ; la valeur par défaut est |
hermetic_static_libs
|
Liste des libellés ; la valeur par défaut est |
java
|
Libellé ; la valeur par défaut est |
java_home
|
Chaîne ; la valeur par défaut est srcs et java doivent être vides.
|
lib_ct_sym
|
Libellé ; la valeur par défaut est --release . Si ce champ n'est pas spécifié et qu'il existe exactement un fichier dans srcs dont le chemin d'accès se termine par /lib/ct.sym , ce fichier est utilisé.
|
lib_modules
|
Libellé ; la valeur par défaut est |
output_licenses
|
Liste de chaînes ; la valeur par défaut est |
version
|
Entier ; la valeur par défaut est Runtime.version().feature() .
|
java_toolchain
Afficher la source de la règlejava_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)
Spécifie la configuration du compilateur Java. La chaîne d'outils à utiliser peut être modifiée via l'argument --java_launcher. Normalement, vous ne devriez pas écrire ce type de règles, sauf si vous souhaitez régler votre compilateur Java.
Exemples
Voici un exemple simple:
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",
)
Arguments
Attributs | |
---|---|
name |
Nom (obligatoire) Nom unique de cette cible. |
android_lint_data
|
Liste des libellés ; la valeur par défaut est |
android_lint_jvm_opts
|
Liste de chaînes ; la valeur par défaut est |
android_lint_opts
|
Liste de chaînes ; la valeur par défaut est |
android_lint_package_configuration
|
Liste des libellés ; la valeur par défaut est |
android_lint_runner
|
Libellé ; la valeur par défaut est |
bootclasspath
|
Liste des libellés ; la valeur par défaut est |
compatible_javacopts
|
null; default is |
deps_checker
|
Libellé ; la valeur par défaut est |
forcibly_disable_header_compilation
|
Booléen ; la valeur par défaut est |
genclass
|
Libellé ; la valeur par défaut est |
header_compiler
|
Libellé ; la valeur par défaut est |
header_compiler_builtin_processors
|
Liste de chaînes ; la valeur par défaut est |
header_compiler_direct
|
Libellé ; la valeur par défaut est Cet outil ne prend pas en charge le traitement des annotations. |
ijar
|
Libellé ; la valeur par défaut est |
jacocorunner
|
Libellé ; la valeur par défaut est |
java_runtime
|
Libellé ; la valeur par défaut est |
javabuilder
|
Libellé ; la valeur par défaut est |
javabuilder_data
|
Liste des libellés ; la valeur par défaut est |
javabuilder_jvm_opts
|
Liste de chaînes ; la valeur par défaut est |
javac_supports_multiplex_workers
|
Booléen ; la valeur par défaut est |
javac_supports_worker_cancellation
|
Booléen ; la valeur par défaut est |
javac_supports_worker_multiplex_sandboxing
|
Booléen ; la valeur par défaut est |
javac_supports_workers
|
Booléen ; la valeur par défaut est |
javacopts
|
Liste de chaînes ; la valeur par défaut est |
jspecify_implicit_deps
|
Libellé ; la valeur par défaut est |
jspecify_javacopts
|
Liste de chaînes ; la valeur par défaut est |
jspecify_packages
|
Liste des libellés ; la valeur par défaut est |
jspecify_processor
|
Libellé ; la valeur par défaut est |
jspecify_processor_class
|
Chaîne ; la valeur par défaut est |
jspecify_stubs
|
Liste des libellés ; la valeur par défaut est |
jvm_opts
|
Liste de chaînes ; la valeur par défaut est |
misc
|
Liste de chaînes ; la valeur par défaut est |
oneversion
|
Libellé ; la valeur par défaut est |
oneversion_allowlist_for_tests
|
Libellé ; la valeur par défaut est |
oneversion_whitelist
|
Libellé ; la valeur par défaut est |
package_configuration
|
Liste des libellés ; la valeur par défaut est |
proguard_allowlister
|
Libellé ; la valeur par défaut est |
reduced_classpath_incompatible_processors
|
Liste de chaînes ; la valeur par défaut est |
singlejar
|
Libellé ; la valeur par défaut est |
source_version
|
Chaîne ; la valeur par défaut est |
target_version
|
Chaîne ; la valeur par défaut est |
timezone_data
|
Libellé ; la valeur par défaut est |
tools
|
Liste des libellés ; la valeur par défaut est |
turbine_data
|
Liste des libellés ; la valeur par défaut est |
turbine_jvm_opts
|
Liste de chaînes ; la valeur par défaut est |
xlint
|
Liste de chaînes ; la valeur par défaut est |