2017-06-03 6 views
0

Das dagger Projekt verwendet bazel.build System zu bauen. Ich habe bazel auf Fedora installiert, es läuft und baut das Projekt aber anscheinend Dolch hat Java 1.8-Code und bazel zielt auf Java 7.Wie Dolch selbst zu bauen

Es wird eine build_def.bzl Datei und Java-Zielversion wie so definiert ist:
SOURCE_7_TARGET_7 = ["-source 1.7 -target 1.7"]

es
SOURCE_7_TARGET_7 = ["-source 1.8 -target 1.8"]

hilft nicht ändert. Sowohl der Master- als auch der RC11-Zweig können aufgrund desselben Fehlers nicht erstellt werden (der Java-Compiler beschwert sich darüber, dass die Zielversion 1.7 keine Lambda- und Methodenreferenz unterstützt). Es gibt keine Anleitung zum Bau von Dolchen auf der Wiki oder Projektseite und ich bin nicht vertraut mit Bazel. Ich frage mich, ob etwas wie retrolambda zum Build-Laufzeitpfad hinzugefügt werden muss, aber es scheint nicht einfach mit Bazel.

Beispielausgabe:

$> bazel build :all 

INFO: Found 8 targets... 
ERROR: /home/user/dagger/java/dagger/internal/codegen/BUILD:44:1: Building java/dagger/internal/codegen/libcodegen.jar (116 source files) failed: java failed: error executing command external/local_jdk/bin/java -Xbootclasspath/p:external/bazel_tools/third_party/java/jdk/langtools/javac-9-dev-r4023-2.jar -XX:+TieredCompilation '-XX:TieredStopAtLevel=1' -jar ... (remaining 2 argument(s) skipped): com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1. 
java/dagger/internal/codegen/AbstractComponentWriter.java:612: error: method references are not supported in -source 1.7 
    (use -source 8 or higher to enable method references) 
java/dagger/internal/codegen/AnnotationExpression.java:80: error: lambda expressions are not supported in -source 1.7 
    (use -source 8 or higher to enable lambda expressions) 
java/dagger/internal/codegen/AnnotationSpecs.java:41: error: method references are not supported in -source 1.7 
    (use -source 8 or higher to enable method references) 

# Rest of output removed for brevity, the error above repeats for many more files. 

Antwort

0

Ich hatte falsche Version von bazel installiert. Gebäude ist so einfach wie Laufen:

bazel build :all 

Ich hatte bereits Oracle JDK 8 installiert auf meinem Rechner (Fedora) und heruntergeladen this release of bazel (bazel-0.5.0-without-jdk-installer-linux-x86_64.sh).