Android Studio库工程上传maven

来源:互联网 发布:广联达计价软件 编辑:程序博客网 时间:2024/06/06 09:17

在公司项目做多了,总能抽取出一些常用的框架,工具类等做成库工程,供以后的项目添加依赖来使用。如何把库工程上传到公司的公共服务器供大家使用呢?

</pre><p>服务器需要安装Nexus,搭建一个maven仓库</p><p>Studio库工程的 build.gradle(project的)指定maven地址,如我的</p><p></p><pre name="code" class="html">buildscript {    repositories {        jcenter()        maven {            url 'http://192.168.8.244:8888/repository/private/'        }    }    dependencies {        classpath 'com.android.tools.build:gradle:2.1.3'    }}allprojects {    repositories {        jcenter()        maven {            url 'http://192.168.8.244:8888/repository/private/'        }    }}
build.gradle(Module的)添加上传的task

apply plugin: 'maven'def isReleaseBuild() {    return VERSION_NAME.contains("SNAPSHOT") == false}def getRepositoryUsername() {    return hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : ""}def getRepositoryPassword() {    return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : ""}afterEvaluate {    project ->        uploadArchives {            repositories {                mavenDeployer {                    pom.groupId = GROUP                    pom.artifactId = POM_ARTIFACT_ID                    pom.version = VERSION_NAME                    repository(url: RELEASE_REPOSITORY_URL) {                        authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())                    }                    snapshotRepository(url: SNAPSHOT_REPOSITORY_URL) {                        authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())                    }                }            }        }        task androidJavadocs(type: Javadoc) {            classpath += project.files(android.getBootClasspath().join(File.pathSeparator))            source = android.sourceSets.main.java.srcDirs            options {                encoding 'utf-8'            }            exclude '**/BuildConfig.java'            exclude '**/R.java'            failOnError false        }        task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {            classifier = 'javadoc'            from androidJavadocs.destinationDir        }        task androidSourcesJar(type: Jar) {            classifier = 'sources'            from android.sourceSets.main.java.sourceFiles        }        artifacts {            archives androidSourcesJar            archives androidJavadocsJar        }}
工程的根目录下创建文件 gradle.properties

GROUP=com.example.library (一般是项目的包名)VERSION_NAME=1.2.3 (版本号)POM_ARTIFACT_ID=MyLibrary (库名字)SNAPSHOT_REPOSITORY_URL=http://192.168.8.244:8888/repository/private/RELEASE_REPOSITORY_URL=http://192.168.8.244:8888/repository/private/NEXUS_USERNAME=xxx (nexus 的登录账号)NEXUS_PASSWORD=xxx  <span style="font-family: Arial, Helvetica, sans-serif;">(nexus的密码)</span>


点击Studio软件里 RUN 的那个绿色的小三角箭头或者在Gradle里找到 Tasks下的upload的uploadArchives任务双击,即可完成上传到maven


项目中如何引用上面上传的库工程呢?

build.gradle(project的)指定maven地址,如前文所示

build.gradle(Module的)的dependencies里添加

compile 'com.example.library:MyLibrary:1.2.3'   //对应gradle.properties的 GROUP:POM_ARTIFACT_ID:VERSION_NAME



0 0
原创粉丝点击