我喜欢用受限的Python代码配置Java应用程序的想法。这种受限的Python配置语言被称为Skylark。我找到了一个Go library for Skylark support,但我需要一个Java。
我可以将bazel项目或buck项目中的哪些maven工件添加到我的pom.xml
依赖项部分,以获得Skylark支持库?
发布于 2018-03-10 21:24:32
在解决#2367之前,下面的方法对我很有效。使用Bazel构建Skylark_deploy.jar并将其作为系统依赖项添加到您的Maven项目中。从本质上讲,这会导致您的类路径变得一团糟,但它可以快速设置并支持实际的实验。
警告:云雀尚未稳定其应用编程接口,因此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。(Skylark一度更名为Starlark。)
先看看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,可以获得更好的灵感。
https://stackoverflow.com/questions/49108709
复制