最近由于工作需要又开始搞安卓方面的东西不过还没深入,由于需要做一个SDK去让其他人用所有就想着能不能做一个类似于iOS上用的Pod管理,经过查资料决定用github联合maven做一个私有库,下面是过程。 1、第一步当然不用多说我们使用Android Studio创建一个module出来,创建过程就不赘述了,因为网上很多教程,自己点几下一个工程加moudle就出来了。我给它取名字为mysdk,创建好的工程结构如下图很简单就创建了一个Activity和一个测试类,在Activity的layout中仅仅添加了一个按钮全屏显示。
然后编辑工程,发现在build->outputs中生成了aar目录,里边存在两个aar文件这就是我们需要的包,如下图:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.hh.mysdk.TestActivity"> <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerVertical="true" android:onClick="onButtonClick" android:text="@string/button_title" /> </RelativeLayout>
到这一步还没有结束,接下来需要做github和maven的关联。 2、github和maven的关联,我们需要在当前工程新建一个gradle文件用于编写生成maven库的脚本,我直接将代码贴上来里边有注释就不多解释了。
然后我们打开gradle管理菜单如下图:// 1.maven-插件 apply plugin: 'maven' // 2.maven-信息 ext {// ext is a gradle closure allowing the declaration of global properties PUBLISH_GROUP_ID = 'com.hh' PUBLISH_ARTIFACT_ID = 'mysdk' PUBLISH_VERSION = android.defaultConfig.versionName } // 3.maven-输出路径 uploadArchives { repositories.mavenDeployer { //这里就是最后输出地址,在自己电脑上新建个文件夹,把文件夹路径粘贴在此 //注意”file://“ + 路径,有三个斜杠,别漏了 repository(url: "file:///Users/liumingming/Documents/AndroidOutput/mysdk") pom.project { groupId project.PUBLISH_GROUP_ID artifactId project.PUBLISH_ARTIFACT_ID version project.PUBLISH_VERSION } } } //以下代码会生成jar包源文件,如果是不开源码,请不要输入这段 //aar包内包含注释 //task androidSourcesJar(type: Jar) { // classifier = 'sources' // from android.sourceSets.main.java.sourceFiles //} // //artifacts { // archives androidSourcesJar //}
圈起来这个选项就是直接做maven库的脚本执行选项,我们去执行以下它,然后到指定目录会看到如下结构的文件结构
其中用红线圈起来的是我们需要传到github上的文件,在传之前我们创建一个叫mysdk的库,然后将刚才红圈圈起来的整个目录传上去,然后就可以去导入库使用了。
注意,由于我经过很多测试所以才有那么多版本。其实引用很简单如下代码,在需要引用这个库的工程添加相信从刚才我们新建gradle文件里就可以看出为什么这么写引用了,如果有不明白的可以留言。dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) api 'com.android.support:appcompat-v7:27.1.0' api 'com.android.support.constraint:constraint-layout:1.0.2' // implementation project(':mysdk') testImplementation 'junit:junit:4.12' implementation 'com.hh:mysdk:1.0.8' //重点是这句 }
查看原文:https://www.liuandy.cn/android/2018/04/02/2346.html
结合github创建私有maven库
最新推荐文章于 2025-07-07 16:32:22 发布