如何解决为什么 groovydoc 总是只返回一个方法文档?
我正在使用 groovy-doc 来分析一些单个文件的 groovy 脚本,我想找到所有带有特定注释的方法,如下所示:
@Mapping(value = "wirelessOfferdetailImageViewComposer",description = "description")
def mapping(Map<String,Object> aliasContext,InvokeContext invokeContext) {
def data = doMapping(aliasContext,invokeContext)
def trackInfo = getTrackInfo(aliasContext,invokeContext)
return [
"data" : data,"trackInfo" : trackInfo
]
}
我认为 groovydoc 应该找到脚本中的所有方法,然后我可以找出哪个方法具有注释 Mapping
并使用以下代码获取值:
Map<String,GroovyClassDoc> rootDoc = docBuilder.getClassDocsFromSingleSource(
DEFAULT_PACKAGE,DEFAULT_FILE_NAME,sourceCode
);
GroovyClassDoc classDoc = rootDoc.get(DEFAULT_DOC_CLASS);
MappingSpec mappingSpec = new MappingSpec();
for (GroovyMethodDoc methodDoc : classDoc.methods()) {
if (MAPPING_METHOD.equals(methodDoc.name())) {
GroovyAnnotationRef[] annotationRefs = methodDoc.annotations();
if (annotationRefs != null) {
for (GroovyAnnotationRef annotationRef : annotationRefs) {
if ("Mapping".equals(annotationRef.name())) {
Map<String,String> annKv = ParamParserUtil.parseAnnotation(annotationRef.description());
if (annKv != null) {
mappingSpec.setDescription(annKv.get("description"));
mappingSpec.setStruct(annKv.get("struct"));
mappingSpec.setName(annKv.get("value"));
return mappingSpec;
}
}
}
}
}
}
但是我运行代码的时候发现classDoc.methods()
总是只返回两个方法,一个是groovy的main
方法,一个是脚本源码中声明的最后一个方法(总是最后一个!)
例如,下面的源代码只会返回 main()
和 c()
的方法文档:
def a() {
...
}
def b() {
...
}
def c() {
...
}
我真的很想知道如何获取单源脚本的所有方法文档,我使用的 groovy-doc 版本是 2.5.1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。