如何在我的应用程序中包含Skylark配置解析器?

时间:2018-03-05 10:49:07

标签: java bazel buck pants skylark

我喜欢用受限制的Python代码配置我的Java应用程序。这种受限制的Python配置语言名为Skylark。我找到了Go library for Skylark support,但我需要一个Java。

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

1 个答案:

答案 0 :(得分:1)

在解决#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/master/src/main/java/com/google/devtools/skylark/Skylark.java获取初步灵感。

请参阅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获取更好的灵感。