我喜欢使用受限的 Python 代码配置我的 Java 应用程序的想法。这种受限的 Python 配置语言被称为 Skylark。我找到了Go library for Skylark support ,但我需要一个 Java 的。
我可以将 bazel 项目或 Buck 项目中的哪个 Maven 工件添加到我的 pom.xml
依赖项部分来获取 Skylark 支持库?
最佳答案
直到#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以获得最初的灵感。 ( lark 曾一度更名为星雀。)
参见https://github.com/google/copybara/blob/d4f9bd37ddf6eb51f1072ffb4e61332f7c410624/java/com/google/copybara/config/SkylarkParser.java然后https://github.com/google/copybara/blob/d4f9bd37ddf6eb51f1072ffb4e61332f7c410624/java/com/google/copybara/Core.java以获得更好的灵感。
关于java - 如何在我的应用程序中包含 Skylark 配置解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49108709/