对于以上场景中,打包可以节约开发成本。常见的打包格式有两种:jar格式和aar格式。
参考文章jar包与aar包的区别
加入需要将一个模块打包成jar包并上传的Maven仓库,该模块下的gradle文件如下所示:
// 引入 groovy 和 java 插件 apply plugin: 'groovy' apply plugin: 'maven' group='com.hc.plugin' version='1.0.0' uploadArchives { repositories { mavenDeployer { //上传路径为本地路径 repository(url: uri('/Users/zengwenbing/Desktop/WorkSpace/work2/GradleExample/repos')) //外面定义了version,这里也可以修改version // pom.version = '0.0.1' // pom.artifactId = 'myplugin' } } } repositories { jcenter() } dependencies { implementation gradleApi() implementation localGroovy() }sync后对应本地路径的文件如图所示:
首先一个模块在编译后会在build/output/aar路径下生成对应的aar文件,生成aar的方式参考官方文档。这里有一个名为module2的模块,点击Gradle中build/assemble后生成的aar文件如图: 定义发布文件publish.gradle:
apply plugin: 'maven-publish' publishing { repositories { maven { // change to point to your repo, e.g. http://my.org/repo //上传路径为本地路径 url = "file://${rootProject.projectDir.absolutePath}/project-maven" } } publications { println "publishing publications" VCamSDK(MavenPublication) { groupId = 'com.zy.easygradle' artifactId = 'ApiDemo' version = '1.0.1.a' artifact "${project.buildDir}/outputs/aar/module2-debug.aar" // artifact androidSourcesJar // from components.java } } }然后在module2模块的gradle文件中加上即可:
apply from: rootProject.getProjectDir().getAbsolutePath() + '/publish.gradle'编译module2模块后点击Gradle中publishing/publish后会在对应路径生成相应的文件,如图所示: