结合github创建私有maven库

最近由于工作需要又开始搞安卓方面的东西不过还没深入,由于需要做一个SDK去让其他人用所有就想着能不能做一个类似于iOS上用的Pod管理,经过查资料决定用github联合maven做一个私有库,下面是过程。

1、第一步当然不用多说我们使用Android Studio创建一个module出来,创建过程就不赘述了,因为网上很多教程,自己点几下一个工程加moudle就出来了。我给它取名字为mysdk,创建好的工程结构如下图


很简单就创建了一个Activity和一个测试类,在Activity的layout中仅仅添加了一个按钮全屏显示。




    
然后编辑工程,发现在build->outputs中生成了aar目录,里边存在两个aar文件这就是我们需要的包,如下图: 结合github创建私有maven库_第1张图片 到这一步还没有结束,接下来需要做github和maven的关联。 2、github和maven的关联,我们需要在当前工程新建一个gradle文件用于编写生成maven库的脚本,我直接将代码贴上来里边有注释就不多解释了。
// 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
//}
然后我们打开gradle管理菜单如下图: 结合github创建私有maven库_第2张图片 圈起来这个选项就是直接做maven库的脚本执行选项,我们去执行以下它,然后到指定目录会看到如下结构的文件结构 结合github创建私有maven库_第3张图片 其中用红线圈起来的是我们需要传到github上的文件,在传之前我们创建一个叫mysdk的库,然后将刚才红圈圈起来的整个目录传上去,然后就可以去导入库使用了。
注意,由于我经过很多测试所以才有那么多版本。
其实引用很简单如下代码,在需要引用这个库的工程添加
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' //重点是这句
}
相信从刚才我们新建gradle文件里就可以看出为什么这么写引用了,如果有不明白的可以留言。

查看原文: https://www.liuandy.cn/android/2018/04/02/2346.html

你可能感兴趣的:(结合github创建私有maven库)