כללים
- 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)
יוצר ארכיון Java ('קובץ 'צנצ'ר'), יחד עם סקריפט מעטפת wrapper עם שם זהה לזה של הכלל.
הסקריפט של מעטפת ה-wrapper משתמש בנתיב מחלקה שכולל, בין היתר, קובץ צנצנת לכל ספרייה שבה הקובץ הבינארי תלוי. כשמריצים את סקריפט המעטפת של ה-wrapper, כל משתנה סביבה JAVABIN
שאינו ריק יקבל עדיפות על פני הגרסה שצוינה באמצעות הדגל --java_runtime_version
של Bazel.
סקריפט ה-wrapper מקבל מספר סימונים ייחודיים. ב-//src/main/java/com/google/devtools/build/lib/bazel/rules/java/java_stub_template.txt
מפורטת רשימה של סימונים ומשתני סביבה שניתנים להגדרה שנתמכים על ידי wrapper.
יעדי פלט משתמעים
name.jar
: ארכיון Java, שמכיל את הקבצים של המחלקה ומשאבים אחרים שתואמים לתלות הישירה של הקובץ הבינארי.name-src.jar
: ארכיון שמכיל את המקורות ("מאגר מקור").name_deploy.jar
: ארכיון Java שמתאים לפריסה (נוצר רק אם התבקשה במפורש).יצירת היעד
<name>_deploy.jar
לכלל שלך יוצרת קובץ צנצנת עצמאי עם מניפסט שמאפשר להריץ אותו באמצעות הפקודהjava -jar
או עם האפשרות--singlejar
של סקריפט ה-wrapper. עדיף להשתמש בסקריפט wrapper על פניjava -jar
כי הוא מעביר גם את דגלי JVM ואת האפשרויות לטעינת ספריות נייטיב.צנצנת הפריסה מכילה את כל המחלקות שנמצאו על ידי טוען המחלקות שחיפש את נתיב המחלקה מסקריפט ה-wrapper של הקובץ הבינארי מההתחלה ועד הסוף. הוא גם כולל את הספריות המקוריות הנדרשות ליחסי תלות. הן נטענים באופן אוטומטי ל-JVM בזמן הריצה.
אם ביעד צוין מאפיין מרכז האפליקציות, אז במקום להיות קובץ JAR רגיל, הקובץ _deploy.jar יהיה קובץ בינארי מקורי. ההגדרה הזו תכלול את מרכז האפליקציות וגם את כל יחסי התלות המקומיים (C++ ) של הכלל, כולם מקושרים לקובץ בינארי סטטי. הבייטים של קובץ ה- הצ'אר עצמו יתווספו לאותו קובץ בינארי מקורי, וכך ייווצר blob בינארי יחיד שמכיל גם את קובץ ההפעלה וגם את קוד Java. אפשר להריץ ישירות את קובץ ה- צנצנת שיתקבל כמו שמפעילים כל קובץ בינארי נייטיב.
name_deploy-src.jar
: ארכיון שמכיל את המקורות שנאספו מהסגירה הטרנזיטיבית של היעד. העמודות האלה יתאימו למחלקות ב-deploy.jar
, אלא אם למאגרים אין מאגר תגים תואם.
לא ניתן להשתמש במאפיין deps
בכלל java_binary
ללא
srcs
. לכלל כזה נדרש
main_class
שסופק על ידי
runtime_deps
.
קטע הקוד הבא מדגים טעות נפוצה:
java_binary( name = "DontDoThis", srcs = [ ..., "GeneratedJavaFile.java", # a generated .java file ], deps = [":generating_rule"], # rule that generates that file )
במקום זאת:
java_binary( name = "DoThisInstead", srcs = [ ..., ":generating_rule", ], )
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. מומלץ להשתמש בשם של קובץ המקור שהוא נקודת הכניסה הראשית של האפליקציה (ללא הסיומת). לדוגמה, אם נקודת הכניסה נקראת Main.java , השם שלך יכול להיות Main .
|
deps
|
רשימת תוויות. ברירת המחדל היא deps במאמר מאפיינים אופייניים שמוגדרים על ידי רוב כללי ה-build.
|
srcs
|
רשימת תוויות. ברירת המחדל היא
קובצי מקור מסוג
קובצי מקור מסוג
כללים: אם הכלל (בדרך כלל
הארגומנט הזה נדרש כמעט תמיד, אלא אם המאפיין |
resources
|
רשימת תוויות. ברירת המחדל היא
אם צוינו משאבים, הם יקובצו במאגר יחד עם הקבצים הרגילים של המשאבים יכולים להיות קובצי מקור או קבצים שנוצרו. |
classpath_resources
|
רשימת תוויות. ברירת המחדל היא
רשימת משאבים שחייבים להיות בשורש של עץ Java. המטרה היחידה של המאפיין הזה היא לתמוך בספריות של צד שלישי שמחייבות את המשתמשים למצוא את המשאבים שלהן בנתיב המחלקה בדיוק כמו |
create_executable
|
ערך בוליאני; nonconfigurable; ברירת המחדל היא java_single_jar .
|
deploy_env
|
רשימת תוויות. ברירת המחדל היא java_binary אחרים שמייצגים את סביבת הפריסה של הקובץ הבינארי.
יש להגדיר את המאפיין הזה כשיוצרים פלאגין שייטען על ידי java_binary אחר.הגדרת המאפיין הזה תחריג את כל יחסי התלות מה-classpath של זמן ריצה (ומ-מאגר ה-Deploy) של הקובץ הבינארי הזה, שמשותפים בין הבינארי הזה לבין היעדים שצוינו ב- deploy_env .
|
deploy_manifest_lines
|
רשימת מחרוזות. ברירת המחדל היא META-INF/manifest.mf , שנוצרה עבור היעד *_deploy.jar . התכנים של המאפיין לא כפופים
להחלפה "Make variable" (יצירת משתנה).
|
javacopts
|
רשימת מחרוזות. ברירת המחדל היא אפשרויות המהדר מועברות ל-Javac אחרי אפשרויות המהדר הגלובלי. |
jvm_flags
|
רשימת מחרוזות. ברירת המחדל היא סקריפט wrapper של בינארי Java כולל הגדרת CLASSPATH (למציאת כל ה-res התלויים) ומפעיל את המתרגם הנכון של Java.
שורת הפקודה שנוצרה על ידי הסקריפט של ה-wrapper כוללת את שם המחלקה הראשית ולאחר מכן שימו לב שלמאפיין הזה אין השפעה על הפלטים של
|
launcher
|
תווית; ברירת המחדל היא bin/java הרגילה שכלולה ב-JDK.
היעד חייב להיות cc_binary . אפשר לציין כל cc_binary שמטמיע
את
Java Invocation API כערך במאפיין הזה.
כברירת מחדל, Bazel תשתמש במפעיל JDK הרגיל (bin/Java או Java.exe). הדגל הקשור שימו לב שיחסי התלות של המקור (C++, SWIG, JNI) בנויים בצורה שונה בהתאם לשימוש במרכז האפליקציות של JDK או במרכז אפליקציות אחר:
כשמשתמשים במרכז אפליקציות שהוא לא ברירת המחדל למרכז האפליקציות של JDK, הפורמט
של הפלט של |
main_class
|
מחרוזת; ברירת המחדל היא main() שתשמש כנקודת כניסה.
אם כלל משתמש באפשרות הזו, אין צורך ברשימת srcs=[...] .
לכן, בעזרת המאפיין הזה אפשר ליצור קובץ הפעלה מספריית Java שכבר
מכילה שיטה אחת או יותר של main() .
הערך של המאפיין הזה הוא שם מחלקה ולא קובץ מקור. המחלקה חייבת להיות זמינה בזמן הריצה: היא יכולה להידרש באמצעות הכלל הזה (מ- |
plugins
|
רשימת תוויות. ברירת המחדל היא java_plugin שצוין במאפיין הזה יפעל בכל פעם שהכלל הזה
ייווצר. ספרייה עשויה גם לרשת יישומי פלאגין מיחסי תלות שמשתמשים ב-exported_plugins . משאבים
שהפלאגין יצר ייכללו בצנצנת שמתקבלת של הכלל הזה.
|
resource_jars
|
רשימת תוויות. ברירת המחדל היא |
resource_strip_prefix
|
מחרוזת; ברירת המחדל היא
אם צוינה תחילית של הנתיב, היא תוסר מכל קובץ במאפיין
|
runtime_deps
|
רשימת תוויות. ברירת המחדל היא deps רגילים, הם יופיעו בנתיב המחלקה של זמן הריצה, אבל בניגוד אליהם, לא בנתיב המחלקה של זמן ההידור. צריך לציין כאן את יחסי התלות הנדרשים רק בזמן הריצה. בכלים לניתוח תלות צריך להתעלם מיעדים שמופיעים גם
ב-runtime_deps וגם ב-deps .
|
stamp
|
מספר שלם. ברירת המחדל היא
קבצים בינאריים מוטמעים לא נוצרים מחדש אלא אם יחסי התלות שלהם משתנים. |
use_launcher
|
ערך בוליאני. ברירת המחדל היא אם המאפיין הזה מוגדר כ-False, המערכת תתעלם ממאפיין
מרכז האפליקציות ומהדגל
|
use_testrunner
|
ערך בוליאני. ברירת המחדל היא com.google.testing.junit.runner.BazelTestRunner ) בתור נקודת הכניסה הראשית לתוכנית Java, ומספקים את מחלקת הבדיקה להרצת הבדיקה כערך של מאפיין המערכת bazel.test_suite .
אפשר להשתמש באפשרות הזו כדי לשנות את התנהגות ברירת המחדל, שהיא להשתמש במצב הרצה לבדיקה של כללי java_test , ולא להשתמש בה עבור כללי java_binary . סביר להניח
שלא כדאי לעשות זאת. אחד השימושים הוא לכללים של AllTest שמופעלים על ידי כלל אחר (לדוגמה, להגדרת מסד נתונים לפני הרצת הבדיקות). צריך להצהיר על הכלל AllTest
בתור java_binary , אבל
עדיין צריך להשתמש במריץ הבדיקה כנקודת הכניסה הראשית שלו.
אפשר לשנות את השם של מחלקה של סביבת בדיקה באמצעות המאפיין main_class .
|
java_import
הצגת מקור הכללjava_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)
הכלל הזה מאפשר להשתמש בקובצי .jar
שעברו הידור מראש כספריות עבור הכללים של java_library
ו-java_binary
.
דוגמאות
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",
],
)
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. |
deps
|
רשימת תוויות. ברירת המחדל היא |
data
|
רשימת תוויות. ברירת המחדל היא |
add_exports
|
רשימת מחרוזות. ברירת המחדל היא module או ל-package הנתונים.
היא תואמת לדגלי Javac ו-JVM --add-exports=. |
add_opens
|
רשימת מחרוזות. ברירת המחדל היא module או ל-package הנתונים.
היא תואמת לדגלי Javac ו-JVM --add-opens=. |
constraints
|
רשימת מחרוזות. ברירת המחדל היא |
exports
|
רשימת תוויות. ברירת המחדל היא |
jars
|
רשימת תוויות; חובה רשימת קובצי ה-JAR שסופקו ליעדי Java שתלויים ביעד זה. |
neverlink
|
ערך בוליאני. ברירת המחדל היא tools.jar לכל פעולה שרצה ב-JDK רגיל.
|
proguard_specs
|
רשימת תוויות. ברירת המחדל היא android_binary בהתאם לספרייה הזו.
הקבצים הכלולים כאן צריכים להכיל רק כללים אידמפוטנטיים, כלומר -dontnote, -dontwarn, assumeno לוואי, וכללים שמתחילים ב-keep. אפשרויות אחרות יכולות להופיע רק ב-proGuard_spec של android_binary , כדי להבטיח מיזוגים לא טאוטולוגיים.
|
runtime_deps
|
רשימת תוויות. ברירת המחדל היא |
srcjar
|
תווית; ברירת המחדל היא |
java_library
הצגת מקור הכללjava_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)
הכלל הזה מהדר מקורות ומקשר אותם לקובץ .jar
.
פלט משתמע
libname.jar
: ארכיון Java שמכיל את הקבצים של הכיתה.libname-src.jar
: ארכיון שמכיל את המקורות ("מאגר מקור").
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. |
deps
|
רשימת תוויות. ברירת המחדל היא deps בקטע מאפיינים אופייניים שמוגדרים על ידי רוב כללי ה-build.
המאגרים שנוצרו על ידי הכללים של
לעומת זאת, מטרות עסקיות במאפיין |
srcs
|
רשימת תוויות. ברירת המחדל היא
קובצי מקור מסוג
קובצי מקור מסוג
כללים: אם הכלל (בדרך כלל
קובצי מקור מסוג המערכת מתעלמת מכל שאר הקבצים, כל עוד יש לפחות קובץ אחד מסוג הקובץ שמתואר למעלה. אחרת, מתקבלת שגיאה.
הארגומנט הזה נדרש כמעט תמיד, אלא אם מציינים את הארגומנט |
data
|
רשימת תוויות. ברירת המחדל היא data בקטע מאפיינים אופייניים שמוגדרים על ידי רוב כללי ה-build.
כשיוצרים קובץ |
resources
|
רשימת תוויות. ברירת המחדל היא המשאבים יכולים להיות קובצי מקור או קבצים שנוצרו.
אם מציינים משאבים, הם יקובצו במאגר יחד עם קובצי |
add_exports
|
רשימת מחרוזות. ברירת המחדל היא module או ל-package הנתונים.
היא תואמת לדגלי Javac ו-JVM --add-exports=. |
add_opens
|
רשימת מחרוזות. ברירת המחדל היא module או ל-package הנתונים.
היא תואמת לדגלי Javac ו-JVM --add-opens=. |
bootclasspath
|
תווית; ברירת המחדל היא |
exported_plugins
|
רשימת תוויות. ברירת המחדל היא java_plugin (למשל, מעבדים של הערות) לייצוא לספריות שתלויות ישירות בספרייה הזו.
רשימת ה- |
exports
|
רשימת תוויות. ברירת המחדל היא
הכללים כאן הופכים אותם לזמינים בכללים להורים, כאילו ההורים תלויים באופן מפורש בכללים האלה. זה לא נכון לגבי
סיכום: כלל X יכול לגשת לקוד ב-Y אם קיים ביניהם נתיב תלות שמתחיל בקצה
נניח ש-A תלוי ב-B וב-B תלוי ב-C. במקרה הזה, האות C היא תלות עוברת של א'. לכן, שינוי המקורות של C ובנייה מחדש של A יגרמו ליצירה מחדש של הכול. עם זאת, לא ניתן יהיה להשתמש בכיתות ב-C. כדי לאפשר
את זה, א' צריכה להצהיר על C ב הסגירה של ספריות מיוצאות זמינה לכל הכללים הישירים ברמת ההורה. ניקח דוגמה קצת שונה: א' תלוי ב-ב', ב' תלוי ב-ג' וב-ד וגם בייצוא מ-ג' אבל לא ב-ד. עכשיו ל-A יש גישה ל-C אבל לא ל-D. עכשיו, אם ג' ו-D ייצאו כמה ספריות, ג' ו-ד' בהתאמה, א' תוכל לגשת רק אל ג' אבל לא אל ד'.
חשוב: כלל שמיוצא הוא לא תלות רגילה. בהמשך לדוגמה הקודמת,
אם ערוץ B מייצא את C ורוצה להשתמש גם ב-C, צריך לרשום את האירוע גם ב- |
javabuilder_jvm_flags
|
רשימת מחרוזות. ברירת המחדל היא |
javacopts
|
רשימת מחרוזות. ברירת המחדל היא אפשרויות המהדר מועברות ל-Javac אחרי אפשרויות המהדר הגלובלי. |
neverlink
|
ערך בוליאני. ברירת המחדל היא tools.jar לכל דבר שפועל ב-JDK רגיל.
שימו לב: אם ספריית זמן הריצה שונה מספריית ההידור, צריך לוודא שהיא שונה רק במקומות שבהם ה-JLS אוסר על מהדרים ליצור בתוך שורה (וחייב להיות זהה בכל הגרסאות העתידיות של ה-JLS). |
plugins
|
רשימת תוויות. ברירת המחדל היא java_plugin שצוין במאפיין הזה יפעל בכל פעם שהכלל הזה ייווצר. ספרייה עשויה גם לרשת יישומי פלאגין מיחסי תלות שמשתמשים ב-exported_plugins . משאבים שהפלאגין יצר ייכללו בצנצנת התוצאה של הכלל הזה.
|
proguard_specs
|
רשימת תוויות. ברירת המחדל היא android_binary בהתאם לספרייה הזו.
הקבצים הכלולים כאן צריכים להכיל רק כללים אידמפוטנטיים, כלומר -dontnote, -dontwarn, assumeno לוואי, וכללים שמתחילים ב-keep. אפשרויות אחרות יכולות להופיע רק ב-proGuard_spec של android_binary , כדי להבטיח מיזוגים לא טאוטולוגיים.
|
resource_strip_prefix
|
מחרוזת; ברירת המחדל היא
אם מציינים את קידומת הנתיב הזו, היא מסירה אותה מכל קובץ במאפיין |
runtime_deps
|
רשימת תוויות. ברירת המחדל היא deps רגילים, הם יופיעו בנתיב המחלקה של זמן הריצה, אבל בניגוד אליהם, לא בנתיב המחלקה של זמן ההידור. יחסי התלות הנדרשים רק בזמן הריצה צריכים להופיע כאן. בכלים לניתוח תלות צריך להתעלם מיעדים שמופיעים גם ב-runtime_deps וגם ב-deps .
|
java_lite_proto_library
הצגת מקור הכללjava_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
יוצר קוד Java מ-.proto
קבצים.
deps
חייב להפנות לכללים proto_library
.
דוגמה:
java_library(
name = "lib",
runtime_deps = [":foo"],
)
java_lite_proto_library(
name = "foo",
deps = [":bar"],
)
proto_library(
name = "bar",
)
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. |
deps
|
רשימת תוויות. ברירת המחדל היא proto_library שעבורם צריך ליצור קוד Java.
|
java_proto_library
הצגת מקור הכללjava_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
יוצר קוד Java מ-.proto
קבצים.
deps
חייב להפנות לכללים proto_library
.
דוגמה:
java_library(
name = "lib",
runtime_deps = [":foo_java_proto"],
)
java_proto_library(
name = "foo_java_proto",
deps = [":foo_proto"],
)
proto_library(
name = "foo_proto",
)
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. |
deps
|
רשימת תוויות. ברירת המחדל היא proto_library שעבורם צריך ליצור קוד Java.
|
java_test
הצגת מקור הכללjava_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()
יוצר בדיקת Java. בדיקה היא wrapper בינארי סביב קוד הבדיקה. השיטה הראשית של מפעיל הבדיקה מופעלת במקום הידור של המחלקה הראשית.
יעדי פלט משתמעים
name.jar
: ארכיון Java.name_deploy.jar
: ארכיון Java שמתאים לפריסה. (נוצר רק אם מבקשים במפורש). לפרטים נוספים, אפשר לעיין בתיאור של הפלטname_deploy.jar
מ-java_binary.
יש לעיין בקטע על java_binary()
ארגומנטים. הכלל הזה גם תומך בכל המאפיינים המשותפים לכל כללי הבדיקה (*_test).
דוגמאות
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",
],
)
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. |
deps
|
רשימת תוויות. ברירת המחדל היא deps בקטע מאפיינים אופייניים שמוגדרים על ידי רוב כללי ה-build.
|
srcs
|
רשימת תוויות. ברירת המחדל היא
קובצי מקור מסוג
קובצי מקור מסוג
כללים: אם הכלל (בדרך כלל
הארגומנט הזה נדרש כמעט תמיד, אלא אם המאפיין |
data
|
רשימת תוויות. ברירת המחדל היא data בקטע מאפיינים אופייניים שמוגדרים על ידי רוב כללי ה-build.
|
resources
|
רשימת תוויות. ברירת המחדל היא המשאבים יכולים להיות קובצי מקור או קבצים שנוצרו.
אם מציינים משאבים, הם יקובצו במאגר יחד עם קובצי |
add_exports
|
רשימת מחרוזות. ברירת המחדל היא module או ל-package הנתונים.
היא תואמת לדגלי Javac ו-JVM --add-exports=. |
add_opens
|
רשימת מחרוזות. ברירת המחדל היא module או ל-package הנתונים.
היא תואמת לדגלי Javac ו-JVM --add-opens=. |
bootclasspath
|
תווית; ברירת המחדל היא |
classpath_resources
|
רשימת תוויות. ברירת המחדל היא
רשימת משאבים שחייבים להיות בשורש של עץ Java. המטרה היחידה של המאפיין הזה היא לתמוך בספריות של צד שלישי שמחייבות שהמשאבים שלהן יימצאו בנתיב המחלקה בדיוק כמו |
create_executable
|
ערך בוליאני. ברירת המחדל היא java_single_jar .
|
deploy_manifest_lines
|
רשימת מחרוזות. ברירת המחדל היא META-INF/manifest.mf שנוצרה עבור היעד *_deploy.jar . התכנים של המאפיין לא כפופים להחלפה "Make variable" (יצירת משתנה).
|
javacopts
|
רשימת מחרוזות. ברירת המחדל היא אפשרויות המהדר מועברות ל-Javac אחרי אפשרויות המהדר הגלובלי. |
jvm_flags
|
רשימת מחרוזות. ברירת המחדל היא סקריפט ה-wrapper של בינארי Java כולל הגדרת CLASSPATH (למציאת כל ה-res התלויים) ומפעיל את המתרגם הנכון של Java.
שורת הפקודה שנוצרה על ידי הסקריפט של ה-wrapper כוללת את שם המחלקה הראשית ולאחר מכן שימו לב שלמאפיין הזה אין השפעה על פלטים של |
launcher
|
תווית; ברירת המחדל היא bin/java הרגילה שכלולה ב-JDK.
היעד חייב להיות cc_binary . אפשר לציין כל cc_binary שמטמיע את
Java Invocation API כערך במאפיין הזה.
כברירת מחדל, Bazel תשתמש במפעיל JDK הרגיל (bin/Java או Java.exe). הדגל הקשור שימו לב שיחסי התלות של המקור (C++, SWIG, JNI) בנויים בצורה שונה בהתאם לשימוש במרכז האפליקציות של JDK או במרכז אפליקציות אחר:
כשמשתמשים במרכז אפליקציות שהוא לא ברירת המחדל למרכז האפליקציות של JDK, הפורמט של הפלט של |
main_class
|
מחרוזת; ברירת המחדל היא main() שתשמש כנקודת כניסה.
אם כלל משתמש באפשרות הזו, אין צורך ברשימת srcs=[...] .
כך, באמצעות המאפיין הזה אפשר ליצור קובץ הפעלה מספריית Java שכבר
מכילה שיטה אחת או יותר main() .
הערך של המאפיין הזה הוא שם מחלקה ולא קובץ מקור. המחלקה צריכה להיות זמינה בזמן הריצה: היא יכולה להיות מקומפלת באמצעות הכלל הזה (מ- |
neverlink
|
ערך בוליאני. ברירת המחדל היא |
plugins
|
רשימת תוויות. ברירת המחדל היא java_plugin שצוין במאפיין הזה יפעל בכל פעם שהכלל הזה ייווצר. ספרייה עשויה גם לרשת יישומי פלאגין מיחסי תלות שמשתמשים ב-exported_plugins . משאבים שהפלאגין יצר ייכללו בצנצנת התוצאה של הכלל הזה.
|
resource_strip_prefix
|
מחרוזת; ברירת המחדל היא
אם מציינים את קידומת הנתיב הזו, היא מסירה אותה מכל קובץ במאפיין |
runtime_deps
|
רשימת תוויות. ברירת המחדל היא deps רגילים, הם יופיעו בנתיב המחלקה של זמן הריצה, אבל בניגוד אליהם, לא בנתיב המחלקה של זמן ההידור. יחסי התלות הנדרשים רק בזמן הריצה צריכים להופיע כאן. בכלים לניתוח תלות צריך להתעלם מיעדים שמופיעים גם ב-runtime_deps וגם ב-deps .
|
stamp
|
מספר שלם. ברירת המחדל היא
קבצים בינאריים מוטמעים לא נוצרים מחדש אלא אם יחסי התלות שלהם משתנים. |
test_class
|
מחרוזת; ברירת המחדל היא
כברירת מחדל, אם הארגומנט הזה לא מוגדר, המערכת משתמשת במצב מדור קודם ובמקום זאת נעשה שימוש בארגומנטים לבדיקה. מגדירים את הדגל
המאפיין הזה מציין את השם של מחלקת Java שהבדיקה הזו תריץ. השימוש בהגדרה הזו הוא נדיר. אם הארגומנט הזה לא יושמט,
תבוצע לו הסקת מס באמצעות
ב-JUnit3, מחלקת הבדיקה צריכה להיות מחלקה משנית של
המאפיין הזה מאפשר לכמה כללים של |
use_launcher
|
ערך בוליאני. ברירת המחדל היא אם המאפיין מוגדר כ-False, המערכת תתעלם ממאפיין
מרכז האפליקציות ומהדגל
|
use_testrunner
|
ערך בוליאני. ברירת המחדל היא com.google.testing.junit.runner.BazelTestRunner ) בתור נקודת הכניסה הראשית לתוכנית Java, ומספקים את מחלקת הבדיקה להרצת הבדיקה כערך של מאפיין המערכת bazel.test_suite .
אפשר להשתמש באפשרות הזו כדי לשנות את התנהגות ברירת המחדל, כלומר להשתמש באפשרות 'הרצת בדיקה' עבור כללי java_test , ולא להשתמש בה בכללי java_binary . סביר להניח שלא תרצו לעשות זאת. אחד השימושים הוא בכללים של AllTest שמופעלים על ידי כלל אחר (לדוגמה, להגדרת מסד נתונים לפני הרצת הבדיקות). צריך להצהיר על הכלל AllTest בתור java_binary , אבל עדיין כדאי להשתמש בו כנקודת הכניסה הראשית.
אפשר לשנות את השם של מחלקה של סביבת בדיקה באמצעות המאפיין main_class .
|
java_package_configuration
הצגת מקור הכללjava_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)
הגדרות אישיות שיחולו על קבוצת חבילות.
אפשר להוסיף הגדרות אישיות ל-java_toolchain.javacopts
.
דוגמה:
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",
]
)
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. |
data
|
רשימת תוויות. ברירת המחדל היא |
javacopts
|
רשימת מחרוזות. ברירת המחדל היא |
output_licenses
|
רשימת מחרוזות. ברירת המחדל היא |
packages
|
רשימת תוויות. ברירת המחדל היא package_group שעליה צריך להחיל את ההגדרות.
|
java_plugin
הצגת מקור הכללjava_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
מגדיר יישומי פלאגין עבור מהדר Java שמופעל על ידי Bazel. בשלב זה, יישומי הפלאגין היחידים שנתמכים הם מעבדי הערות. כלל java_library
או
java_binary
יכול להפעיל יישומי פלאגין על ידי ביצוע הפעולה הזו באמצעות המאפיין plugins
. באמצעות exported_plugins
, java_library
יכול גם לייצא באופן אוטומטי יישומי פלאגין לספריות שתלויות בהן באופן ישיר.
יעדי פלט משתמעים
libname.jar
: ארכיון Java.
הארגומנטים זהים ל-java_library
, מלבד הוספת הארגומנט processor_class
.
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. |
deps
|
רשימת תוויות. ברירת המחדל היא deps בקטע מאפיינים אופייניים שמוגדרים על ידי רוב כללי ה-build.
המאגרים שנוצרו על ידי הכללים של
לעומת זאת, מטרות עסקיות במאפיין |
srcs
|
רשימת תוויות. ברירת המחדל היא
קובצי מקור מסוג
קובצי מקור מסוג
כללים: אם הכלל (בדרך כלל
קובצי מקור מסוג המערכת מתעלמת מכל שאר הקבצים, כל עוד יש לפחות קובץ אחד מסוג הקובץ שמתואר למעלה. אחרת, מתקבלת שגיאה.
הארגומנט הזה נדרש כמעט תמיד, אלא אם מציינים את הארגומנט |
data
|
רשימת תוויות. ברירת המחדל היא data בקטע מאפיינים אופייניים שמוגדרים על ידי רוב כללי ה-build.
כשיוצרים קובץ |
resources
|
רשימת תוויות. ברירת המחדל היא המשאבים יכולים להיות קובצי מקור או קבצים שנוצרו.
אם מציינים משאבים, הם יקובצו במאגר יחד עם קובצי |
add_exports
|
רשימת מחרוזות. ברירת המחדל היא module או ל-package הנתונים.
היא תואמת לדגלי Javac ו-JVM --add-exports=. |
add_opens
|
רשימת מחרוזות. ברירת המחדל היא module או ל-package הנתונים.
היא תואמת לדגלי Javac ו-JVM --add-opens=. |
bootclasspath
|
תווית; ברירת המחדל היא |
generates_api
|
ערך בוליאני. ברירת המחדל היא אם כלל משתמש במעבד אנוטציות שיוצר באמצעות API, כללים אחרים שתלויים בו יכולים להפנות לקוד שנוצר רק אם פעולות ההידור שלהם מתוזמנות אחרי כלל היצירה. המאפיין הזה מורה ל-Bazel להוסיף אילוצי תזמון כשהאפשרות --Java_header_compilation מופעלת. אזהרה: המאפיין הזה משפיע על ביצועי ה-build, ויש להשתמש בו רק אם צריך. |
javabuilder_jvm_flags
|
רשימת מחרוזות. ברירת המחדל היא |
javacopts
|
רשימת מחרוזות. ברירת המחדל היא אפשרויות המהדר מועברות ל-Javac אחרי אפשרויות המהדר הגלובלי. |
neverlink
|
ערך בוליאני. ברירת המחדל היא tools.jar לכל דבר שפועל ב-JDK רגיל.
שימו לב: אם ספריית זמן הריצה שונה מספריית ההידור, צריך לוודא שהיא שונה רק במקומות שבהם ה-JLS אוסר על מהדרים ליצור בתוך שורה (וחייב להיות זהה בכל הגרסאות העתידיות של ה-JLS). |
output_licenses
|
רשימת מחרוזות. ברירת המחדל היא |
plugins
|
רשימת תוויות. ברירת המחדל היא java_plugin שצוין במאפיין הזה יפעל בכל פעם שהכלל הזה ייווצר. ספרייה עשויה גם לרשת יישומי פלאגין מיחסי תלות שמשתמשים ב-exported_plugins . משאבים שהפלאגין יצר ייכללו בצנצנת התוצאה של הכלל הזה.
|
processor_class
|
מחרוזת; ברירת המחדל היא |
proguard_specs
|
רשימת תוויות. ברירת המחדל היא android_binary בהתאם לספרייה הזו.
הקבצים הכלולים כאן צריכים להכיל רק כללים אידמפוטנטיים, כלומר -dontnote, -dontwarn, assumeno לוואי, וכללים שמתחילים ב-keep. אפשרויות אחרות יכולות להופיע רק ב-proGuard_spec של android_binary , כדי להבטיח מיזוגים לא טאוטולוגיים.
|
resource_strip_prefix
|
מחרוזת; ברירת המחדל היא
אם מציינים את קידומת הנתיב הזו, היא מסירה אותה מכל קובץ במאפיין |
java_runtime
הצגת מקור הכללjava_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.
דוגמה:
java_runtime(
name = "jdk-9-ea+153",
srcs = glob(["jdk9-ea+153/**"]),
java_home = "jdk9-ea+153",
)
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. |
srcs
|
רשימת תוויות. ברירת המחדל היא |
default_cds
|
תווית; ברירת המחדל היא java_runtime הרמטי. כשמפעילים את ההרמטיות ליעד java_binary , ואם היעד לא מספק ארכיון CDS משלו על ידי ציון המאפיין classlist , תקליטור ה-CDS שמוגדר כברירת מחדל java_runtime נארז ב-JAR הפריסה הרמטית.
|
hermetic_srcs
|
רשימת תוויות. ברירת המחדל היא |
hermetic_static_libs
|
רשימת תוויות. ברירת המחדל היא |
java
|
תווית; ברירת המחדל היא |
java_home
|
מחרוזת; ברירת המחדל היא srcs ו-java חייבים להיות ריקים.
|
lib_ct_sym
|
תווית; ברירת המחדל היא --release . אם לא מציינים שום דבר ויש רק קובץ אחד ב-srcs שהנתיב שלו מסתיים ב-/lib/ct.sym , ייעשה שימוש בקובץ הזה.
|
lib_modules
|
תווית; ברירת המחדל היא |
output_licenses
|
רשימת מחרוזות. ברירת המחדל היא |
version
|
מספר שלם. ברירת המחדל היא Runtime.version().feature() .
|
java_toolchain
הצגת מקור הכללjava_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. אפשר לשנות את שרשרת הכלים שבה צריך להשתמש באמצעות הארגומנט --Java_toolchain. בדרך כלל לא כדאי לכתוב כללים כאלה, אלא אם רוצים לכוונן את מהדר ה-Java.
דוגמאות
דוגמה פשוטה:
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",
)
ארגומנטים
מאפיינים | |
---|---|
name |
שם; שדה חובה יש לתת ליעד הזה שם ייחודי. |
android_lint_data
|
רשימת תוויות. ברירת המחדל היא |
android_lint_jvm_opts
|
רשימת מחרוזות. ברירת המחדל היא |
android_lint_opts
|
רשימת מחרוזות. ברירת המחדל היא |
android_lint_package_configuration
|
רשימת תוויות. ברירת המחדל היא |
android_lint_runner
|
תווית; ברירת המחדל היא |
bootclasspath
|
רשימת תוויות. ברירת המחדל היא |
compatible_javacopts
|
null; default is |
deps_checker
|
תווית; ברירת המחדל היא |
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
|
רשימת מחרוזות. ברירת המחדל היא |
misc
|
רשימת מחרוזות. ברירת המחדל היא |
oneversion
|
תווית; ברירת המחדל היא |
oneversion_allowlist_for_tests
|
תווית; ברירת המחדל היא |
oneversion_whitelist
|
תווית; ברירת המחדל היא |
package_configuration
|
רשימת תוויות. ברירת המחדל היא |
proguard_allowlister
|
תווית; ברירת המחדל היא |
reduced_classpath_incompatible_processors
|
רשימת מחרוזות. ברירת המחדל היא |
singlejar
|
תווית; ברירת המחדל היא |
source_version
|
מחרוזת; ברירת המחדל היא |
target_version
|
מחרוזת; ברירת המחדל היא |
timezone_data
|
תווית; ברירת המחדל היא |
tools
|
רשימת תוויות. ברירת המחדל היא |
turbine_data
|
רשימת תוויות. ברירת המחדל היא |
turbine_jvm_opts
|
רשימת מחרוזות. ברירת המחדל היא |
xlint
|
רשימת מחרוזות. ברירת המחדל היא |