一、通过"maven"插件上传
在gradle里依赖maven插件
apply plugin:'maven'
配置上传的task的参数
uploadArchives {
repositories.mavenDeployer {
repository(url: uri(MAVEN_URL)){
//你Nexus的账户密码
authentication(userName: 'username', password: 'admin')
}
pom.groupId = 'com.example.plugins'
pom.artifactId = 'TestPlugin'
pom.version = '1.0.0'
}
}
MAVEN_URL可以为本地仓库或者远程仓库的路径
二、通过"maven-publish"插件上传
将上传的脚本封装成一个gradle文件,upload-lib.gradle
apply plugin: 'maven-publish'
//上传groupId名称
def MAVEN_GROUPID = rootProject.ext.maven_config.GROUP_ID
//maven私服用户名
def MAVEN_USERNAME = rootProject.ext.maven_config.MAVEN_NAME
//maven私服密码
def MAVEN_PASSWORD = rootProject.ext.maven_config.MAVEN_PSW
//分远程和本地
def MAVEN_URL = rootProject.ext.maven_config.UPLOAD_TO_REMOTE_MAVEN ? rootProject.ext.maven_config.MAVEN_URL : '../repo'
println("MAVEN_URL:${MAVEN_URL}")
publishing {
publications {
uploadSDK(MavenPublication) {
groupId MAVEN_GROUPID
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.implementation.allDependencies.withType(ModuleDependency) { ModuleDependency dp ->
if (dp.version != "unspecified") {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', dp.group)
dependencyNode.appendNode('artifactId', dp.name)
dependencyNode.appendNode('version', dp.version)
if (dp.excludeRules.size() > 0) {
def exclusions = dependencyNode.appendNode('exclusions')
dp.excludeRules.each { ExcludeRule ex ->
def exclusion = exclusions.appendNode('exclusion')
exclusion.appendNode('groupId', ex.group)
exclusion.appendNode('artifactId', ex.module)
}
}
}
}
}
}
}
repositories {
maven {
url MAVEN_URL
//远程才需要账号和密码
if(rootProject.ext.maven_config.UPLOAD_TO_REMOTE_MAVEN){
credentials {
username MAVEN_USERNAME
password MAVEN_PASSWORD
}
}
}
}
}
task publishToMaven(dependsOn: ['assemble', 'publish']) {
doLast {
println "finish publish to maven"
}
}
publishToMaven.setGroup('upload')
引入上传脚本
apply from: '../upload-lib.gradle'
配置maven参数
//maven配置
publishing {
publications {
uploadSDK(MavenPublication) {
artifact 'build/libs/libprocessor.jar' //可以自定义上传的文件
artifactId rootProject.ext.lib_config.LIB_PROCESSOR.LIB_NAME
version rootProject.ext.lib_config.LIB_PROCESSOR.VERSION_NAME
description '路由框架的注解编译器及注解'
}
}
}
三、引入maven仓库
在工程根目录下的build.gradle里配置repositories
1.引入本地maven仓库
maven {
url uri('本地maven仓库名')
}
2.引入远程maven仓库
maven { url '远程仓库地址' }
0 条评论