Gradle:如何将带有子路径的 sourceControl 定义为依赖项?
Posted
技术标签:
【中文标题】Gradle:如何将带有子路径的 sourceControl 定义为依赖项?【英文标题】:Gradle: How to define sourceControl with sub-path as dependency? 【发布时间】:2021-01-02 17:02:54 【问题描述】:使用 sourceControl-Tag 我想使用来自 google 的公共存储库作为我自己项目中的依赖项。存储库包含一些我想要包含/使用的示例 java-class。但是由于提供必要 gradle-stuff 的 gradle 模块/项目位于存储库的文件结构的更深处(=> 不是根目录),所以我很难引用正确的 URL。在我的 settings.gradle 中,我添加了一些这样的行:
sourceControl
gitRepository("https://github.com/google-ar/arcore-android-sdk.git"))
producesModule("com.google.ar.core.examples:app")
我感兴趣的模块可以在 https://github.com/google-ar/arcore-android-sdk/tree/master/samples/hello_ar_java
【问题讨论】:
【参考方案1】:源依赖是一个非常酷的特性,但不幸的是它的文档记录很差。在这种情况下,我们必须查看 API 文档。 SourceControl 的 API 是 here(这是您使用的最外层块)。这里我们可以看到通过VersionControlRepository可以配置一个gitRepository
。而在这里面,我们看到除了producesModule
方法外,还有一个setRootDir
方法,其描述如下:
void setRootDir(String rootDir)
设置存储库中构建根目录的相对路径。
所以,根据你的存储库路径,试试这个:
sourceControl
gitRepository("https://github.com/google-ar/arcore-android-sdk.git")
producesModule("com.google.ar.core.examples:app")
rootDir = "samples/hello_ar_java"
【讨论】:
以上是关于Gradle:如何将带有子路径的 sourceControl 定义为依赖项?的主要内容,如果未能解决你的问题,请参考以下文章
使用sonarqube gradle插件配置带有子模块的Android项目的正确方法是啥?
错误:无法找到带有 Gradle 路径“:capacitor-cordova-android-plugins”的模块