在项目做到中后期的时候,基本会有多个甚至十几个模块构成。各个模块相对独立,但有些又相互依赖。
现阶段公司的各个模块有单独的仓库管理,通过导入其他模块的aar来实现依赖,这种方式简单快捷,但当一个仓库更新后,其他仓库就需要手动拷入改版本的aar,这样既不利于版本管理,又比较麻烦。
这时我们就需要通过maven来发布各自仓库的版本到Maven仓库中,然后每个仓库就可以通过maveb来引用所需要的依赖。
公司内部会自己搭建私有Maven仓库,就把包发布到私有Maven仓库当中。在当前module的gradle中进行maven发布的配置
uploadArchives {
repositories {
mavenDeployer {
pom.project {
groupId = "com.zsg.sample"
artifactId = "smart"
version = "1.0.0"
}
repository(url: "http://192.168.0.1:8800/test") {
authentication(userName: "admin", password: "123")
}
}
}
}
上面对maven进行简单的配置。通过执行gradle的task 来将该仓库上传到maven
在其他模块这样依赖: compile "com.zsg.sample:smart:1.0.0@aar"
执行这个task时,会对项目进行编译,最后会将仓库中生成的aar和poms文件传到maven上去。aar这个大家都知道,这边我简单介绍下poms文件。
大家在build目录中可以看到poms文件夹,这里面有一个pom-default.xml文件,这个文件声明了仓库的名称、版本等重要的信息,这些信息都是我们在上面配置的。然后就是这个库所依赖的其他仓库的信息。这里要注意下,当我们依赖发布到maven上的这个库的时候,会同时依赖poms文件中所声明的其他库。
这里可以看到poms文件中声明了appcompat-v7这个 google库,如果发布时不想将这个库加入到依赖中 可以在gradle文件中将compile变为provided 这样打包的时候就把会将这个依赖放入poms文件中。
再下面我们可以发下我这模块又依赖了本地的panel-release模块 那么问题就来了,其他的模块依赖我这模块是 同时就要依赖panel-release模块 ,但panel-release模块又是我本地的,并没有传到maven上,所以就会导致依赖失败。这里有3个解决办法:
1、将panel-release的依赖变为provided 这样就不会放到poms里,但是这样可能会导致你编译过不了。
2、在动态生成poms文件时将panel-release依赖去掉
uploadArchives {
repositories {
mavenDeployer {
conf2ScopeMappings.mappings.remove(configurations.compile)
......
}
}
}
3、在依赖时只依赖aar文件,不依赖aar包所依赖的其他库。
compile "com.zsg.sample:smart:1.0.0@aar"
强烈推荐第三种方法!!!!
- 大小: 38.3 KB
- 大小: 219.1 KB
分享到:
相关推荐
【maven】说明:Gradle maven工件发布与maven、maven发布、android maven Gradle插件的演练。该项目包含..., (Gradle maven artifacts publishing walkaround with maven , maven-publish , android-maven gradle ...
这一插件使得Android项目可以无缝地与Maven仓库交互,方便地发布到Maven仓库,或者引用Maven仓库中的依赖。 在项目结构上,Android Maven Gradle 插件支持标准的Maven布局,例如`src/main/java`用于存放源代码,`...
13. **发布到Maven仓库**: 开发者可以将自己的Android库打包并发布到Maven仓库,供他人引用。例如,发布到JCenter或Maven Central。 总结,Maven在Android开发中的应用主要体现在依赖管理、构建流程自动化、多模块...
在Android开发中,将库项目打包并发布到Maven仓库是一项常见的任务,这使得其他开发者可以轻松地在他们的项目中依赖这些库。然而,标准的Maven Publish Gradle插件在处理Android Library项目时并不完全兼容,特别是...
通过Maven化Android library,我们可以将aar或jar文件发布到Artifactory,然后在其他项目中通过声明依赖来引用这个库。 **上传library至Artifactory的步骤** 1. **配置pom.xml**:为library项目添加必要的Maven信息...
在Android开发过程中,管理依赖库和发布自定义库到Maven仓库是常见的需求。这个名为"Android-支持上传多种maven仓库配置相关全部自动生成"的工具或框架旨在简化这一过程,让开发者无需手动配置繁琐的上传脚本,提高...
Gradle插件,创建一个UploadArchives任务,自动将所有Java、Kotlin或Android库上载到任何Maven实例。这个插件基于chris-banes的初始实现,并且已经被增强以添加kotlin支持并跟上最新的更改。
2. **构建过程自动化**:插件支持编译、打包、签名和发布Android应用到Google Play商店等目标,简化了从源代码到APK的整个流程。 3. **集成测试支持**:可以运行单元测试和集成测试,并生成测试报告,确保代码质量...
这个插件允许Android项目使用Maven的POM文件来管理依赖,并将APK发布到Maven仓库。 然而,随着时间的推移,Google对Android的构建系统进行了重大改进,推出了`android.build.plugins`,这是一个专门针对Android项目...
经过两天的研究,分别实现了Gradle 6.1与Gradle 7.5两种Gradle版本,多渠道发布JitPack maven AAR依赖库的案例,案例分别为: + jitpack_MultiFlavorLibDemo_gradle_6_1 + jitpack_MultiFlavorLibDemo_gradle_7_5 ...
- `maven-releases`: 此仓库不允许重复部署,意味着一旦发布了一个正式版本的库,就不能直接覆盖,必须更新版本号。 - `maven-snapshots`: 允许重复部署,即使groupId、artifactId、version相同也可以进行覆盖。 ...
Gradle Maven出版物 Gradle脚本/插件,可使用gradle maven或maven-publish插件帮助发布jar / aar工件。 该存储库包含两个组件:脚本和插件: 这些脚本的工作方式与但同时支持maven和maven-publish以及pom.xml更多...
要在Android Studio中配置Maven发布,你需要做以下几步: 1. **创建POM.xml文件**:这是Maven的核心文件,用于描述你的项目,包括项目信息(如groupId、artifactId、version)、依赖项以及构建设置。你应该为你的...
在Android开发中,有时我们需要将一个模块打包成AAR(Android Archive)格式并发布到私有的Maven服务器,以便其他项目能够通过依赖管理来使用。本文将详细介绍如何完成这一过程,以及解决在上传过程中可能遇到的问题...
aar-publish-plugin是一个专门为Android开发者设计的Gradle插件,它简化了使用Maven Publish插件发布Android AAR库的过程。在Android开发中,AAR(Android Archive)是库项目的标准打包格式,类似于Java的JAR文件,...
在Android开发中,将项目发布到Maven Central是让其他开发者可以轻松地依赖和使用你的库的重要步骤。本文将详细讲解如何使用Android Studio配置并发布项目到Maven Central源码,以及涉及到的相关知识点。 首先,...
Gradle-Maven-Plugin是专门为Gradle 5.x版本设计的一个插件,它允许开发者使用Gradle构建系统来模拟Maven的发布流程,将工件部署到Maven仓库。这个插件对于那些同时使用Gradle和Maven的项目尤其有用,因为它实现了...
对于大型团队,通常会使用私有Nexus或Artifactory等仓库服务器,通过配置`settings.xml`的镜像和仓库,将Maven项目发布到私服,以便团队成员共享。 总结来说,Maven通过规范化的项目构建方式,极大地提高了开发效率...
- Maven的主要功能是管理依赖、构建项目和发布。项目信息存储在`pom.xml`文件中,包括依赖、构建配置等。 - Maven的中文手册可参考[http://www.juvenxu.com/mvn-def-guide/](http://www.juvenxu.com/mvn-def-guide/)...
与【标签】中并未提供具体的知识点,但根据【部分内容】,我们可以推断出本篇主要涉及的是Android开发中的Maven仓库配置,包括Nexus私库的安装与配置,以及在Android Studio中如何配置Maven仓库以下载和发布依赖。...