如何发布Android .aar源代码以使Android Studio自动找到它们?

13
我正在将库发布到内部 Sonatype Nexus 存储库。

Android Studio 有一个功能,可以自动查找通过 gradle 引用的库的正确源代码。我将我们的 aar 的源代码作为单独的 jar 发布到 Nexus。但是 Android Studio 没有捕捉到它们。

我应该如何发布源代码,使其在 Android Studio 中可用?

这个有更新了吗? - Bhoot
2个回答

3

目前还不可能。


1
像 Retrofit 这样的库通过 MavenCentral 把它们的源代码公开了。这是 Maven Central 的一个特定功能吗? - Janusz
这是Gradle的一个限制,即在构建时不会从存储库下载源代码文件(因为构建时不需要)。我们需要找到一种方法来使其下载并通过发送到IDE的模型公开它。 - Xavier Ducrohet
1
但是,如果我进入一个类,例如OkHttp,Android Studio会显示一个搜索源代码的按钮。对于大多数在Maven Central上的开源库,点击此按钮后可以找到并完美地显示源代码。但是对于我们自己的Repo,它不起作用。 - Janusz
1
FYI,Retrofit和OkHttp是作为JAR包而不是AAR包打包的。 - worawee.s
4
@XavierDucrohet 我可以指示Gradle下载我的依赖项源代码(像这样https://gist.github.com/stefanhoth/37f86c8e41d648cbd2c8),但是AAR文件中的类仍然找不到源代码。 你有没有可能填补这个差距? - Stefan Hoth
显示剩余3条评论

3

我已经编写了一个Gradle插件来实现这个功能。希望它能对你有所帮助。

----- 编辑 ------

如何发布Android .aar源码?

android {

    task sourcesJar(type: Jar) {
        classifier = 'sources'
        from android.sourceSets.main.java.srcDirs
    }

    artifacts {
        archives sourcesJar
    }

    uploadArchives {
        repositories {
            mavenDeployer {
                ...
            }
        }
    }
}

是的,这个插件是为gradle 2.+编写的。如果您需要,您可以自己修改插件,只需要进行一些小的更改即可。 - Real.Xu
1
据我理解,您的插件有助于下载依赖项的源代码,但问题是“如何发布Android应用程序”。您能回答这个问题吗?当知道您的插件也可以用于本地阅读时,也许可以吗? - riper
3
我认为问题不在于未发布的资源,而在于Android Studio不知道在哪里查找AARs的资源。我们为所有内部AAR发布了资源,但AS仍然找不到它们。 - mxk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接