直接命令执行
首先安转mvn,至于怎么安装可以直接百度
在CMD终端执行以下命令
mvn deploy:deploy-file -DgroupId=com.test.uvc.camera -DartifactId=libusbcommon -Dversion=v4.1.1 -Dpackaging=aar -Dfile=libusbcommon_v4.1.1.aar -Durl=http://******/repository/android/ -DrepositoryId=android -X
参数介绍
1.DgroupId :生成的jar或者aar的group名称
2.DartifactId:artifactId 名称
3.Dversion:版本号
4.Dpackaging:文件类型,Android 一般用aar
5.Dfile:文件地址
6.Durl:公司或者私人搭建的nexus 仓库地址
Android Studio中gradle脚本执行
使用maven
- 加入maven插件
apply plugin: "maven"
- 编写上传脚本
uploadArchives {
repositories.mavenDeployer {
Properties properties = new Properties()
properties.load(project.rootProject.file('gradle.properties').newInputStream())
def userName = properties.getProperty('maven.user')
def passwords = properties.getProperty('maven.password')
def mavenUrl = properties.getProperty('maven.url')
repository(url: uri(mavenUrl)){
authentication(userName: userName, password: passwords)
}
// 配置 pom 信息
pom.groupId = "com.test.tracker"
pom.artifactId = "track"
pom.version = "1.0.5"
pom.packaging = "aar"
}
}
task uploadSourceJar(type: Jar) {
// 定义一个标志 (生成的jar包后面加上sources, 如: myhttp-1.0.2-20210927.115550-2-sources.jar)
classifier = 'sources'
println "srcDirs=${project.android.sourceSets.main.java.sourceFiles}"
// 指定源码文件路径
from project.android.sourceSets.main.java.sourceFiles
}
// 指定发包的时候,需要执行的task任务
artifacts {
archives uploadSourceJar
}
- 执行命令
gradlew tracker:uploadArchives
使用maven-publish
- 首先在module的build.gradle 文件顶部加入
apply plugin: 'maven-publish'
- 在build.gradle 底部加入如下代码,注意不要放在android {}block中
task sourceJar(type: Jar) {
from android.sourceSets.main.java.getSrcDirs() // 源码路径
archiveClassifier = "sources"
}
publishing {
Properties properties = new Properties()
properties.load(project.rootProject.file('gradle.properties').newInputStream())
def userName = properties.getProperty('maven.user')
def passwords = properties.getProperty('maven.password')
def mavenUrl = properties.getProperty('maven.url')
repositories {
maven {
credentials {
username userName
password passwords
}
url mavenUrl // 仓库地址
allowInsecureProtocol = true
}
}
publications {
release(MavenPublication) {
// 添加以下配置可以自动从编译容器中获取release版本内容(使用debug可以获取debug版本内容),并生成pom文件
artifact sourceJar
afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
version '1.0.6'//版本
artifactId 'track'
groupId = 'com.test.tracker'
description 'track'
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.implementation.allDependencies.each {
// 避免出现空节点或 artifactId=unspecified 的节点
if (it.group != null && (it.name != null && "unspecified" != it.name) && it.version != null) {
println "dependency=${it.toString()}"
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
dependencyNode.appendNode('scope', 'implementation')
}
}
}
}
}
}
- 在工程的gradle.properties 中加入 maven 相关的配置信息,大致如下,
主要是搭建的nexus账号及android仓库的地址
maven.url=http://*******/repository/android/
maven.user=zhangsan
maven.password=zhangsan123
-
在AndroidStudio 终端,执行 命令 .\gradlew publish,即可
效果如下
参考完整配置