搭建自己的maven服务器

我们都知道Android studio 使用了Gradle来编译工程,在处理依赖上非常方便,一行代码就可以将一个库引入到工程中来。在工作中为了方便代码的共享提高开发效率,我们很有必要建一个自己的maven服务器,将我们的依赖工程放在服务器上,这样我们想引入我们自己的类库的时候就很方便了。下面我们来搭建一个maven服务器吧。

搭建服务器

  1. 申请个服务器,各种linux都可以。
  2. 下载Nexus Repository OSS, 地址为https://www.sonatype.com/download-oss-sonatype
  3. 将下载完的包发送到服务器上,如果使用的ssh方式连接服务器可以使用scp命令:当然用户名和ip地址要做相应的修改。

    1
    scp Downloads/nexus-3.3.0-01-unix.tar.gz  yourusername@10.201.102.83:/home/yourusername/maven
  4. 运行解压命令将内容解压到指定的文件夹:

    1
    sudo tar xvzf nexus-3.3.0-01-unix.tar.gz -C /data1
  5. 创建一个软连接

    1
    sudo ln -s nexus-3.3.0-01/ nexus
  6. 将nexus添加到环境变量中

  • 使用vim打开配置文件:

    1
    vim ~/.bashrc
  • 添加如下命令到文件的末尾:

    1
    export PATH="$PATH:/data1/nexus/bin"
  • 保存退出后运行下面命令让环境变量生效:

    1
    source ~/.bashrc
  1. 运行下面的命令来启动服务:

    1
    nexus start
  2. 在浏览器中输入服务器的地址,如我的服务器地址是:http://10.201.102.83:8081/, 如果一切顺利的话会启动欢迎界面,
    在这里可以对服务器进行配置和管理。在这里我们需要创建一个新的用户,并记下其密码,在接下来我们会使用。

使用maven服务器

OK,服务器已经搭建好了,现在就可以使用了。下面我们来创建一个测试工程并将其发送到服务器上。

  1. 创建一个工程,因为这个是一个库工程,所以在build.gradle文件中我们要在开头添加如下代码:

    1
    2
    apply plugin: 'com.android.library'
    apply plugin: 'maven'
  2. 在build.gradle 文件中创建上传任务:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    uploadArchives {
    repositories {
    mavenDeployer {
    repository(url: "http://10.201.102.83:8081/repository/maven-releases/") {
    authentication(userName: "yourname", password: "yourpassword")
    }
    pom.groupId = 'com.test.yourid'
    pom.artifactId = 'yourartifacid'
    pom.version = '1.0.0'
    pom.packaging = 'aar'
    }
    }
    }
    task androidJavadocs(type: Javadoc) {
    source = android.sourceSets.main.java.sourceFiles
    }

    task androidJavadocsJar(type: Jar) {
    classifier = 'javadoc'
    from androidJavadocs.destinationDir
    }

    task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.sourceFiles
    }

    artifacts {
    archives androidSourcesJar
    archives androidJavadocsJar
    }
    uploadArchives.mustRunAfter('build')
    uploadArchives << {
    println "Uploaded success"
    }
  3. 运行命令 ./gradlew uploadArchives, 如果一切顺利的话依赖包会被上传到maven服务器上。

  4. 在需要引用这个库的工程的build.gradle 文件中添加如下代码进行引用就可以了。

    1
    2
    3
    4
    5
    6
    7
    8
    dependencies {
    repositories {
    maven {
    url 'http://10.201.102.83:8081/repository/maven-releases/'
    }
    }
    compile 'com.test.yourid:yourartifacid:1.0.0@aar'
    }
  5. 如果有版本的升级,需要将对应的版本号给更新一下。

至此一个我们自己的maven服务器就搞定了,来愉快地玩耍吧。