我喜欢使用受限 Python 代码配置我的 Java 应用程序的想法。这种受限的 Python 配置语言名为 Skylark。我找到了一个支持 Skylark 的 Go 库,但我需要一个 Java 库。
我可以将 bazel 项目或 buck 项目中的哪个 maven 工件添加到我的pom.xml
依赖项部分以获取 Skylark 支持库?
在#2367解决之前,以下内容对我有用。使用 Bazel 构建 Skylark_deploy.jar 并将其作为系统依赖项添加到您的 Maven 项目中。本质上,这会导致您的类路径变得一团糟,但它可以快速设置并支持实际实验。
警告:Skylark 尚未稳定其 API,因此 com.google.devtools 下的任何内容都可能会发生未经宣布的更改。
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。
<systemPath>${project.basedir}/lib/Skylark_deploy.jar</systemPath>
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以获得更好的灵感。