三、maven仓库创建
1、创建仓库流程
创建仓库分为四步,分别是
填写仓库的名字和存储的位置,其他参数感兴趣的,可以自行独立研究
假设已经在maven仓库进行创建了仓库
假设文件名字为 UploadMaven.gradle
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
def siteUrl = 'http://www.baido.com' // 项目主页
def gitUrl = 'https://github.com/demo/demo.git' // 项目的git地址
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
afterEvaluate {
publishing {
repositories {
def Nexususername = properties.getProperty("Nexus.name")
def Nexuspassword = properties.getProperty("Nexus.password")
//release仓库
maven{
//仓库的名字和地址
name = "demo_release_repo"
url="http://maven-android.demo.com/repository/demo/"
// 仓库用户名密码
credentials {
username = Nexususername
password = Nexuspassword
}
}
//快照仓库
maven{
//仓库的名字和地址
name = "demo_snapshot_repo"
url="http://maven-android.demo.com/repository/demo_snapshot/"
// 仓库用户名密码
credentials {
username = Nexususername
password = Nexuspassword
}
}
}
publications {
// 创建名为 release的任务
release(MavenPublication) {
// 需要使用的变体,假设有free和pay两个变体,可以选择一个
from components.free
// 文件的groupId
groupId = 'com.mbridge.msdk.support'
//文件的名字
artifactId = project.name
//对pom进行的操作
pom.withXml{
Node pomNode = asNode()
pomNode.dependencies.'*'.findAll() {
//将所有的默认依赖移除
//it.parent().remove(it)
}
}
pom {
name = artifactId
url = siteUrl
licenses {
//证书说明
license {
name='The Apache Software License, Version 2.0' // 开源协议名称
url='http://www.apache.org/licenses/LICENSE-2.0.txt' // 协议地址
}
}
developers {
developer {
id='demo_id' // 账号
name='demo' // 名称
email='demo@demo.com' // 邮箱地址
}
}
//软件配置管理
scm {
connection=gitUrl
developerConnection=gitUrl
url=siteUrl
}
}
}
}
}
}
可以写在 local.properties文件中
Nexus.name=demo_name
Nexus.password=demopassword
生成pom的任务
generatePomFileForReleasePublication
推送到远端的任务(以推送release任务为例)
publishReleasePublicationToDemo_release_repoRepository
可以拆解为:
publish+publications的名字,首字母大写+PublicationTo+maven的name,首字母大写+Repository
如果没有意外的话,这样就会传到maven上去,给用户使用就可以了