我们都知道Android studio 使用了Gradle来编译工程,在处理依赖上非常方便,一行代码就可以将一个库引入到工程中来。在工作中为了方便代码的共享提高开发效率,我们很有必要建一个自己的maven服务器,将我们的依赖工程放在服务器上,这样我们想引入我们自己的类库的时候就很方便了。下面我们来搭建一个maven服务器吧。
搭建服务器
- 申请个服务器,各种linux都可以。
- 下载Nexus Repository OSS, 地址为https://www.sonatype.com/download-oss-sonatype
将下载完的包发送到服务器上,如果使用的ssh方式连接服务器可以使用scp命令:当然用户名和ip地址要做相应的修改。
1
scp Downloads/nexus-3.3.0-01-unix.tar.gz yourusername@10.201.102.83:/home/yourusername/maven
运行解压命令将内容解压到指定的文件夹:
1
sudo tar xvzf nexus-3.3.0-01-unix.tar.gz -C /data1
创建一个软连接
1
sudo ln -s nexus-3.3.0-01/ nexus
将nexus添加到环境变量中
使用vim打开配置文件:
1
vim ~/.bashrc
添加如下命令到文件的末尾:
1
export PATH="$PATH:/data1/nexus/bin"
保存退出后运行下面命令让环境变量生效:
1
source ~/.bashrc
运行下面的命令来启动服务:
1
nexus start
在浏览器中输入服务器的地址,如我的服务器地址是:http://10.201.102.83:8081/, 如果一切顺利的话会启动欢迎界面,
在这里可以对服务器进行配置和管理。在这里我们需要创建一个新的用户,并记下其密码,在接下来我们会使用。
使用maven服务器
OK,服务器已经搭建好了,现在就可以使用了。下面我们来创建一个测试工程并将其发送到服务器上。
创建一个工程,因为这个是一个库工程,所以在build.gradle文件中我们要在开头添加如下代码:
1
2apply plugin: 'com.android.library'
apply plugin: 'maven'在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
35uploadArchives {
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"
}运行命令 ./gradlew uploadArchives, 如果一切顺利的话依赖包会被上传到maven服务器上。
在需要引用这个库的工程的build.gradle 文件中添加如下代码进行引用就可以了。
1
2
3
4
5
6
7
8dependencies {
repositories {
maven {
url 'http://10.201.102.83:8081/repository/maven-releases/'
}
}
compile 'com.test.yourid:yourartifacid:1.0.0@aar'
}如果有版本的升级,需要将对应的版本号给更新一下。
至此一个我们自己的maven服务器就搞定了,来愉快地玩耍吧。