我在Android Studio中External Libraries
下显示jar库时遇到问题。我尝试为此库添加javadoc,但我在网上找到的唯一方法是右键单击External Libraries
中的库并选择Library Properties...
。
项目结构是由许多模块组成的树:
rootsdk /
main.jar
main-javadoc.jar
plugins /
plugin1 /
build.gradle
...
plugin2 /
build.gradle
...
...
依赖项在build.gradle
文件中声明,如下所示:
compileOnly files('../../main.jar')
如果我打开plugin1
目录,那么依赖项就会正确地显示在External Libraries
中,但是如果我打开rootsdk
项目,它就不会出现,所有的模块都列出了,并且可以从根项目编译,我可以很好地使用库中定义的类,但是它没有出现在External Libraries
下,所以我不能为它添加javadoc。
奇怪的是,有些插件使用其他库,但定义不同:
repositories {
flatDir {
dirs 'libs'
}
}
...
implementation(name: 'core-debug', ext: 'aar')
这些库如预期显示在External Libraries
下。
是否缺少一些东西来强制main.jar
显示在External Libraries
下,或者这是AS中的一个bug?
1条答案
按热度按时间mbjcgjjk1#
这是一件愚蠢的事情,但是如果你把它做成一个Ivy或者Maven仓库,它应该可以工作。
files
不行。下面的两个解决方案都应该支持-sources
和-javadoc
后缀。我认为IDEA只实现了来自仓库的工件解析,而没有考虑直接的文件引用。艾薇
玛文
你可以做一些类似上面的事情,但是repo结构不太灵活。你需要移动. jar/. aar文件。我建议为它们创建一个文件夹(即使现在有一个)。在这个例子中,我称之为
libs
。错误消息将告诉您将其放在何处,例如:
请注意,虽然这更复杂,但也更灵活,因为您可以手写或下载POM文件,因此包括本地JAR文件的传递依赖项,如果您的工件有POM XML文件,只需删除
metadataSources
块。metadataSources
这个魔术值得一提(docs):
它会告诉Gradle,存储库中没有与工件关联的元数据(POM或Ivy XML文件),只有工件存在。如果没有这些,查找元数据将失败。