JDK7ツールチェーンを追加して、すべてをビルドすることができます。その後、
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"],
)
としてビルドする:例えば、ビルドファイルにthisを追加
bazel build --java_toolchain=//whatever:jdk7 //your:target
あなたはそれがとにかく1.7互換の出力を_already_ないですか? –
ああ私は言及すべきだった。 jarをAndroidプロジェクトにドロップすると、dxがクラスファイルのバージョンについて不平を言った。これは '--javacopt'フラグで設定されたオプションでビルドするときには発生しませんでした。 – kamalmarhubi
@LouisWasserman Java protosは、java_toolchainの文書化されていないcompatible_javacoptsからjavacoptを追加します。これは、Bazelの// tools/jdk:toolchainには埋め込まれていません。だから、コンパイルは1.7互換ではないと思う。ツールチェーンを変更する必要がありますか? – user1071136