【发布时间】:2020-03-23 17:11:49
【问题描述】:
【问题讨论】:
标签: java intellij-idea annotations external-annotations
【问题讨论】:
标签: java intellij-idea annotations external-annotations
这种行为非常令人困惑,我花了很长时间的 IDEA 调试会话才能理解。
假设我们从一个干净的情况开始,我们向 library 的方法添加一个外部 Annotation。
出现一个弹出窗口,让我们选择外部 Annotations 根目录。
我们选择项目的根目录untitled3。但是操作,我们犯了一个错误!
现在我们如何改变这个目录?它存储在哪里?
嗯,其实不在任何$projectRoot$/.idea/* XML 文件下...
让我们调试 IDEA。 “调用”层次结构是:
> AnnotateIntentionAction
> AddAnnotationPsiFix#invoke
> ExternalAnnotationsManagerImpl#annotateExternally
最后一个方法annotateExternally 调用AnnotationOrderRootType.getFiles(entry),其中entry 是LibraryOrderEntry。
这里orderEntry.getRootFiles(getInstance()) 被调用,生成的VirtualFile(s) 被用作库的外部注释根。
它们存储在哪里?
> Project structure
> Modules
> *your main module with dependencies*
> *your library*
> DOUBLE LEFT CLICK
现在在 Annotations 条目上按 CANC,您就完成了……最后。
你可以重新开始。
【讨论】:
您可以将 annotations.xml 文件拖放到 Project 窗格 中并将其移动到所需位置或在 Project 中明确更改路径结构 |项目设置 |模块 -> 模块路径 |外部注释
【讨论】:
annotation-root-one/annotation-root-two)定义为外部注释路径。现在,当您第一次向JSONObject#optJSONObject 方法添加外部注释时,它会询问您将其放在哪里,选择根untitled3。正如我在答案(最后一张图片)中显示的那样,该位置现在将位于库设置下。外部注释路径不用于库,仅用于本地源。但也许我误解了,你的意思是别的?