3

我喜欢使用受限 Python 代码配置我的 Java 应用程序的想法。这种受限的 Python 配置语言名为 Skylark。我找到了一个支持 Skylark 的 Go 库,但我需要一个 Java 库。

我可以将 bazel 项目或 buck 项目中的哪个 maven 工件添加到我的pom.xml依赖项部分以获取 Skylark 支持库?

4

1 回答 1

3

#2367解决之前,以下内容对我有用。使用 Bazel 构建 Skylark_deploy.jar 并将其作为系统依赖项添加到您的 Maven 项目中。本质上,这会导致您的类路径变得一团糟,但它可以快速设置并支持实际实验。

警告:Skylark 尚未稳定其 API,因此 com.google.devtools 下的任何内容都可能会发生未经宣布的更改。

使用 Bazel 构建 Skylark_deploy.jar

git clone git@github.com:bazelbuild/bazel.git --depth 1
cd bazel
bazel build //src/main/java/com/google/devtools/skylark:Skylark
bazel build //src/main/java/com/google/devtools/skylark:Skylark_deploy.jar

检查它是否有效,以下两个命令中的任何一个都应该启动 Skylark REPL

bazel-bin/src/main/java/com/google/devtools/skylark/Skylark
java -jar bazel-bin/src/main/java/com/google/devtools/skylark/Skylark_deploy.jar

Skylark_deploy.jar 当前大小为 9.4MiB。

将其作为系统依赖项添加到您的 Maven 项目中

<systemPath>${project.basedir}/lib/Skylark_deploy.jar</systemPath>

或者使用 Gradle

compile files('lib/Skylark_deploy.jar')

有关初始灵感,请参阅https://github.com/bazelbuild/bazel/blob/0f99c3cc0b7b82e198c8f365254493fc4713edcd/src/main/java/com/google/devtools/starlark/cmd/Starlark.java。(云雀曾一度更名为 Starlark。)

请参阅https://github.com/google/copybara/blob/d4f9bd37ddf6eb51f1072ffb4e61332f7c410624/java/com/google/copybara/config/SkylarkParser.java然后https://github.com/google/copybara/blob/d4f9bd37ddf6eb51f1072ffb4e61332f7c41064 com/google/copybara/Core.java以获得更好的灵感。

于 2018-03-10T21:24:31.563 回答