我可以在 AsciiDoctor 文档中包含 Java 常量值吗?

Ant*_*sss 5 java asciidoc asciidoctor

例如,让某个类中有一个 Java 常量

public class MyClass{
  public static final String ENDPOINT="http://example.com"
}
Run Code Online (Sandbox Code Playgroud)

让我们尝试在 AsciiDoctor 中描述该类(公司文档原因)

==== My class

..... some descripton ..... 
It is exposed trough http://example.com
Run Code Online (Sandbox Code Playgroud)

现在,每次更改端点时,我也必须手动更新文档(IDE 查找和替换显然可以解决问题)。有没有办法将 Java 常量包含到 AsciiDoc 中,这样我就不必将其值复制到文档中?

我很乐意看到类似的东西{import my.package.MyClass#ENDPOINT}

Cra*_*nes 0

我会编写一个 shell 脚本(PERL,无论什么),它会在 Java 代码中查找类似于 的正则表达式'class (\w+).*ENDPOINT="([^"]+)',然后使用 发送结果到包含文件 ( ./endpoints.adoc) ':\1_endpoint: \2',因此:

:MyClass_endpoint: http://example.com
:MyOtherClass_endpoint: http://other.example.com
Run Code Online (Sandbox Code Playgroud)

然后,在 AsciiDoc 文件的顶部插入:include::endpoints.adoc[]

然后在正文中引用{MyClass_endpoint}and 。{MyOtherClass_endpoint}

然后,只需在调用 AsciiDoctor 之前将脚本作为工具链的一部分运行即可。