【问题标题】:How to publish Android .aar sources to make Android Studio automatically find them?如何发布 Android .aar 源码让 Android Studio 自动找到它们?
【发布时间】:2014-04-10 15:58:43
【问题描述】:

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

Android Studio 具有自动查找通过 gradle 引用的库的正确源代码的功能。我将我们 aar 的源代码作为单独的 jar 发布到 nexus。 但 Android Studio 并没有接受它们。

如何发布源代码才能在 Android Studio 中使用?

【问题讨论】:

  • 这方面有什么更新吗?

标签: android gradle aar


【解决方案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 文件中的类仍然找不到源代码。你有机会缩小差距吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-23
  • 2017-07-01
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 2015-03-12
相关资源
最近更新 更多