dagger项目使用bazel.build系统构建。我在Fedora上安装了bazel,它运行并构建了项目,但显然dagger有Java 1.8代码,bazel以java 7为目标。
有一个build_def.bzl文件和java目标版本定义如下:
$filename = $_FILES["userfile"]["name"];
$source = $_FILES["userfile"]["tmp_name"];
$name = explode(".", $filename);
$target_path = "Apps/" . $username . "/" . $name[0]. "." .$name[1];
if(move_uploaded_file($source, $target_path))
{
$zip = new ZipArchive();
$x = $zip->open($target_path);
if ($x === true)
{
$zip->extractTo("Apps/" . $username . "/");
$zip->close();
}
}
将其更改为
SOURCE_7_TARGET_7 = ["-source 1.7 -target 1.7"]
无济于事。 master和rc11分支都因为相同的错误而无法构建(java编译器抱怨目标版本1.7不支持lambda和方法引用)。在wiki或项目页面上没有关于构建匕首的指南,我对bazel不熟悉。我想知道是否必须将类似retrolambda的内容添加到构建运行时路径中,但使用bazel似乎不容易。
示例输出:
SOURCE_7_TARGET_7 = ["-source 1.8 -target 1.8"]
答案 0 :(得分:0)
我安装了错误的bazel版本。建筑就像跑步一样简单:
bazel build :all
我已经在我的机器上安装了Oracle JDK 8(Fedora)并下载了this release of bazel(bazel-0.5.0-without-jdk-installer-linux-x86_64.sh)。