上片文章介绍了如何搭建maven私服,如果没有搭建好的可参考 https://blog.csdn.net/u013626215/article/details/86007013
接下来将介绍一下maven服务的具体使用
在启动服务后可访问http://localhost:8081/
或远程地址http://ip地址:8081/
此时需要登录,点击右上角sign in
用户名: admin
密码:admin123
下面对页面结构做大概说明,打开后显示如下界面:
一.左侧菜单:
- search :为搜索的库文件
- browse:maven库列表
- upload:上传的库文件
二.仓库列表介绍:
左侧菜单其他还有很多功能,在这就不详细介绍了,下面说一下我们应该怎样去创建仓库并使用
1.在创建仓库是要先选择仓库的存储位置,如下图,我们可以使用默认的位置default
也可以自己创建一个,如下图:
2.存储位置有了,下面创建仓库一般要有一个proxy代理仓库,指向maven的中央仓库。当然也可以指向其他的仓库(如果有的话),如下图选择创建仓库:
3创建一个proxy仓库一般属性都是默认就好,如下:
4下面创建发布的release仓库,如图:
5如果想不做升级覆盖原来的版本此处可以修改为allow redeploy
6在创建snapshot仓库,同上面的release仓库相似:
7创建仓库group统一管理上面的3个仓库:
8最终效果如下图:
仓库创建完成,之后就是整合android studio将代码上传到这里面:
在已有的android library中添加配置,首先创建一个gradle_maven_push.gradle文件
以下文件几乎通用,执行修改服务器地址和三项pom参数即可,代码如下:
apply plugin: 'maven'
// 此处的值可根据实际版本发生变化
def isRelease = true
//release 地址
def RELEASE_REPOSITORY_URL = "http://192.168.182.128:8081/repository/demo-maven-host/"
//snapshots 地址
def SNAPSHOT_REPOSITORY_URL = "http://192.168.182.128:8081/repository/demo-maven-snapshot/"
// 根据 isRelease判断将项目上传到那个地址上
def REPOSITORY_URL = isRelease ? SNAPSHOT_REPOSITORY_URL : RELEASE_REPOSITORY_URL;
def NEXUS_USERNAME = "admin"
def NEXUS_PASSWORD = "admin123"
// 下面这三项pom参数,在调用的时候是这个样子 : compile 'com.google.zxings:zxing:1.1.1'
def GROUP="com.google.zxings"
def POM_ARTIFACT_ID="zxing"
def VERSION_NAME="1.1.1"
logger.info("groupId = %s\t\nartifactId = %s\t\nversion = %s\t\nrepository = %s\t\n", GROUP, POM_ARTIFACT_ID, VERSION_NAME, REPOSITORY_URL)
afterEvaluate { project ->
uploadArchives {
repositories.mavenDeployer {
repository(url: REPOSITORY_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
// 下面这三项pom参数,在调用的时候是这个样子 : compile 'com.google.zxings:zxing:1.1.1'
// library的包名
pom.groupId = GROUP
// library的项目名
pom.artifactId = POM_ARTIFACT_ID
// library的版本号
pom.version = VERSION_NAME
pom.project {
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
}
}
}
task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
}
}
之后在library的build.gradle将上面的文件引入即可 如:
apply plugin: 'com.android.library'
android {
// 。。。省略
}
//引用gradle_maven_push.gradle
apply from: "gradle_maven_push.gradle"
编译通过后在android studio的Terminal中执行如下命令:
gradle uploadArchives
出现下图表示上传成功
或
点击gradle快捷方式,双击uploadArchives也可以上传成功
在仓库中对应的库中查看,已经可以看到刚上传的库文件了:
既然上传好了,剩下的就是如何使用这个库了,先复制仓库group的地址:
添加到项目的根目录的build.gradle如图:
代码如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
// classpath 'com.novoda:bintray-release:0.8.1'
}
}
allprojects {
repositories {
//maven仓库组地址
maven{
url "http://192.168.182.128:8081/repository/demo-maven-group/"
}
jcenter()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
在项目对应的application的build.gradle中引用上传才库文件:
apply plugin: 'com.android.application'
android {
//.....省略
}
dependencies {
// 此处就是引用方式
implementation "com.google.zxings:zxing:1.1.1"
}
到此maven私服的上传和使用都介绍完了,有不足和错误的地方欢迎指出,讨论
在android studio 里面如果想把项目上传到jcenter上可参考:
https://www.jianshu.com/p/207c3a467167
特别鸣谢参考地址
http://www.cnblogs.com/kevingrace/p/6201984.html
https://blog.csdn.net/qq_26585943/article/details/79771313
https://www.jianshu.com/p/207c3a467167