2
對於java_library
,我可以設置生成規則javacopts
屬性。似乎沒有成爲java_proto_library
或java_lite_proto_library
類似的事情。你怎麼能得到一個java_proto_library 1.7兼容輸出?
我可以圍繞此設置-source
和-target
選擇通過-javacopt
標誌的javac到BAZEL,但我寧願它在構建文件編碼。
對於java_library
,我可以設置生成規則javacopts
屬性。似乎沒有成爲java_proto_library
或java_lite_proto_library
類似的事情。你怎麼能得到一個java_proto_library 1.7兼容輸出?
我可以圍繞此設置-source
和-target
選擇通過-javacopt
標誌的javac到BAZEL,但我寧願它在構建文件編碼。
你可以添加一個JDK7工具鏈,然後建立與它的一切。例如,添加this到構建文件:
java_toolchain(
name = "jdk7",
bootclasspath = ["@bazel_tools//tools/jdk:bootclasspath"],
encoding = "UTF-8",
extclasspath = ["@bazel_tools//tools/jdk:extdir"],
genclass = ["@bazel_tools//tools/jdk:GenClass_deploy.jar"],
header_compiler = ["@bazel_tools//tools/jdk:turbine_deploy.jar"],
ijar = ["@bazel_tools//tools/jdk:ijar"],
javabuilder = ["@bazel_tools//tools/jdk:JavaBuilder_deploy.jar"],
javac = ["@bazel_tools//third_party/java/jdk/langtools:javac_jar"],
javac_supports_workers = 1,
jvm_opts = [
"-XX:+TieredCompilation",
"-XX:TieredStopAtLevel=1",
],
singlejar = ["@bazel_tools//tools/jdk:SingleJar_deploy.jar"],
source_version = "7",
target_version = "7",
visibility = ["//visibility:public"],
)
然後用建:
bazel build --java_toolchain=//whatever:jdk7 //your:target
感謝@kristina! – kamalmarhubi
你確定它不是反正_already_ 1.7兼容輸出? –
啊我應該提到。將jar放入Android項目導致dx抱怨類文件版本。這在使用通過'--javacopt'標誌設置的選項構建時沒有發生。 – kamalmarhubi
@LouisWasserman的Java PROTOS採取額外javacopt從java_toolchain的無證compatible_javacopts,這是不是在巴澤爾的//工具/ JDK填充:工具鏈。所以,我認爲彙編不會是1.7兼容的。我們應該修改工具鏈嗎? – user1071136