我有一个具有以下结构的项目:
-
projectRoot
-
build.gradle
-
module1 /
-
build.gradle
-
artifact1.aar
-
module2 / ....
我的artifact1.aar是一个已编译的工件,我无权访问这些资源 .
我的模块1 gradle构建文件如下:
configurations.maybeCreate("default")
artifacts.add("default", file('artifact1.aar'))
通过这种方式,只需引用gradle项目依赖项,模块2中就可以使用.aar中包含的代码 .
但我想在我的maven本地发布.aar,以便它可以被其他android项目访问 .
我检查了maven-publish插件和android-maven-publish插件,但这两个似乎是在java-library插件或com.android.library插件之后调用的 .
所以我的问题是如何在我的maven本地存储库中发布一个带有gradle的现有aar?
我在4.8版本中使用gradle .
2 回答
我在这个例子中使用了一个rxbinding aar .
您可以将
maven-publish
插件应用于任何项目,但是您必须手动定义工件,就像我们刚刚在这里完成的那样 . 一些插件(如java-library
插件)与maven-publish
插件集成,以自动发布项目的默认工件 .现在运行
./gradlew rxbinding:publishToMavenLocal
- 这应该将工件放入您的本地仓库将
implementation 'my.sample.artifact:somerandomname:1.0.0'
添加到计算机上任何项目的消费者应用程序中 .提及任何以这种方式发布的aar非常重要,不会带来它的依赖关系,所以你必须知道实际使用已发布的aar需要哪些库 .
我也创建了一个example project,你可以尝试这个 .
如果您安装了maven,则可以使用
maven-install-plugin
的install-file目标 .