如何发布 Android .aar 源码让 Android Studio 自动找到它们?
Posted
技术标签:
【中文标题】如何发布 Android .aar 源码让 Android Studio 自动找到它们?【英文标题】:How to publish Android .aar sources to make Android Studio automatically find them? 【发布时间】:2014-04-10 15:58:43 【问题描述】:我正在将库发布到内部 Sonatype Nexus 存储库。
android Studio 具有自动查找通过 gradle 引用的库的正确源代码的功能。我将我们 aar 的源代码作为单独的 jar 发布到 nexus。 但 Android Studio 并没有接受它们。
如何发布源代码才能在 Android Studio 中使用?
【问题讨论】:
这方面有什么更新吗? 【参考方案1】:我为此功能写了gradle plugin。希望对你有帮助。
----- 编辑 ------
如何发布 Android .aar 源?
android
task sourcesJar(type: Jar)
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
artifacts
archives sourcesJar
uploadArchives
repositories
mavenDeployer
...
【讨论】:
是的,这个插件是为 gradle 2.+ 编写的。如果需要,您可以自己修改插件。只是一点点改变。 所以据我了解,您的插件有助于下载依赖项的源代码,但这里的问题是“如何发布 Android..”。你也能回答这个问题吗?当知道您的插件可以用来在本地(也)读取它们时? 我认为问题不在于未发布的资源,而是 Android Studio 不知道在哪里寻找 AAR。我们发布了所有内部 AAR 的来源,但 AS 仍然找不到它们。【参考方案2】:暂时不可以。
【讨论】:
Retrofit 等库正在通过 MavenCentral 提供源代码。这是 Maven Central 的特定功能吗? Gradle 在构建时不从存储库下载源工件是一个限制(因为在构建时不需要它)。我们需要找到一种方法让它下载它并通过发送到 IDE 的模型公开它。 但是,如果我去上课,例如 OkHttp Android Studio 会显示一个按钮搜索源。对于 Maven Central 上的大多数开源库,单击此按钮后可以找到并完美显示源代码。但对于我们自己的 Repo,它不起作用。 仅供参考 retoryfit 和 okhttp 被打包为 jar 而不是 aar @XavierDucrohet 我可以指示 Gradle 下载我的依赖项的源代码(例如 gist.github.com/stefanhoth/37f86c8e41d648cbd2c8 ),但是 AAR 文件中的类仍然找不到源代码。你有机会缩小差距吗?以上是关于如何发布 Android .aar 源码让 Android Studio 自动找到它们?的主要内容,如果未能解决你的问题,请参考以下文章
Android 源码环境下用Android.mk 导入aar
Android 源码环境下用Android.mk 导入aar
如何让用Android studio 导出jar包并混淆和aar