我有一个多模块 android 项目,目前我们团队中的任何人都可以从我们的私有(private) maven 存储库访问模块。
我们正在使用 aws
中托管的 jFrog Artifactory
来管理存储库。我们项目的结构是这样的
应用程序
-lib1
-lib2
-lib2a
-lib2b
我想知道是否有一种方法可以使 lib2a
和 lib2b
不能作为单独的模块访问,而只能在有人将父模块的依赖项添加到他们的项目在这种情况下是 lib2
最佳答案
I want to know if there is a way by which lib2a and lib2b is not accessible as separate modules but only accessible when someone adds the dependency of the parent module in their project which is lib2 in this case
简答:
不,你不能这样做。
长答案:
当您将 Artifact 放入 Maven 存储库时,您将拥有 Artifact 文件(可能是您的 Android 库的 aar)和一个 pom 文件。
pom 文件还描述了 Artifact 的传递依赖性。
目前您无法指定要使用的父依赖项或特定的 Maven 存储库(这个正在开发中)。
这意味着一个构建系统,例如gradle,读取依赖,从repos下载pom文件并下载所有传递依赖。
当您下载传递依赖项时,无法指定您是刚刚下载了父项还是直接下载了它。
它可以无条件可用,也可以不可用。
关于android - 私有(private) Maven 存储库中的多模块 android 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57591099/