使用gradle构建发布脚本,即可快速方便地发布文件到maven仓库。有2种插件可以选择,一种maven,一种maven-publish。

使用maven插件

maven插件内置了一个方法uploadArchives,这个方法会将当前项目编译打包并发布:

apply plugin: 'maven'uploadArchives {repositories {mavenDeployer {
//            repository(url: "http://repo.apcos.com/repository/apcos-snapshot/") {
//                authentication(userName: "xxxx", password: "xxxx")
//            }repository(url: "file://localhost/F:/Studying/repo/")pom.project {groupId = "com.xter.support"artifactId = "support"version = "0.7"packaging 'aar'developers {developer {id 'xter'name 'Liang'timezone 'Asia/Shanghai'}}description 'Some Utils of XTER'}}}
}

按照官方文档描述:

To add additional content to the POM, the pom.project builder can be used. With this builder, any
element listed in the Maven POM reference can be added.

pom.project节点中可以添加任何符合Maven POM规范的字段。
如果想将文档注释与源码一起发布的话,可以同级添加artifacts 节点说明需要发布的文档:

task javadoc(type: Javadoc) {failOnError = falsesource = android.sourceSets.main.java.srcDirsclasspath += project.files(android.getBootClasspath().join(File.pathSeparator))options.addStringOption('encoding','UTF-8')
}task javadocJar(type: Jar, dependsOn: javadoc) {classifier = 'javadoc'from javadoc.destinationDir
}task sourceJar(type: Jar) {classifier = 'sources'from android.sourceSets.main.java.srcDirs
}artifacts {archives sourceJararchives javadocJar
}

上述gradle任务可在IDE中gradle工具栏中找到:

双击执行后,即可在相应位置找到发布的文件了。
这里是发布到F盘目录下了,所以去F盘对应目录下即可找到:

在support-0.7.pom中即可看到一些发布的具体描述信息:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><groupId>com.xter.support</groupId><artifactId>support</artifactId><version>0.7</version><packaging>aar</packaging><description>Some Utils of XTER</description><developers><developer><id>xter</id><name>Liang</name><timezone>Asia/Shanghai</timezone></developer></developers><dependencies><dependency><groupId>com.android.support</groupId><artifactId>appcompat-v7</artifactId><version>26.1.0</version><scope>compile</scope></dependency><dependency><groupId>com.android.support</groupId><artifactId>design</artifactId><version>26.1.0</version><scope>compile</scope></dependency></dependencies>
</project>

使用maven-publish插件

maven-publish插件同样内置一个方法,名为publishing,通过配置此方法,可以发布文件:

apply plugin: 'maven-publish'publishing {publications {support(MavenPublication) {artifact sourceJarartifact javadocJarartifact 'build/outputs/aar/support-release.aar'groupId 'com.xter.support'artifactId 'support'version '0.7'pom.withXml {asNode().appendNode('description', 'Some Utils of XTER')def developer = asNode().appendNode('developers').appendNode('developer')developer.appendNode('id','xter')developer.appendNode('name','Liang')developer.appendNode('timezone','Asia/Shanghai')}}}repositories {maven {
//            credentials {
//                username "xxxxx"
//                password "xxxxx"
//            }
//            url "http://repo.apcos.com/repository/apcos-snapshot/"url  "file://F:/Studying/repo/"}}
}

这里是上传了本地aar文件及其文档,效果和上一种方法等同。只不过由于这里用的gradle版本较低,只能使用pom.withXml来添加pom更多信息,还是有所不便,根据官方例子是同样可以依闭包形式快速添加节点的。
此时官方gradle最新版本为6.0.1。

完成后同样是执行对应gradle任务即可完成发布。(这里截的另外的项目图,正确的gradle任务应该叫publishSupportPublicationToMavenRepository)

远程依赖

最后远程依赖不必多说,先在根节点的build.gradle中添加对应仓库:

allprojects {repositories {//        maven { url 'http://repo.apcos.com/repository/apcos-snapshot/'}maven { url 'file://F:/Studying/repo/'}   }
}

然后在需要的module引用:

dependencies {implementation 'com.xter.support:support:0.7'
}

至此就可以正常使用了。

使用gradle发布文件到maven仓库相关推荐

  1. 使用Gradle发布工件到Maven仓库

    Gradle发布工件(Publishing Artifacts) 此文章基于Gradle 4.6编写. 1. Maven Plugin(旧版) 使用Maven Plugin发布Artifcat是旧的插 ...

  2. Maven-将jar包发布到本地maven仓库与私服

    创建一个项目,并创建 library ,不会参考下面: https://blog.csdn.net/wuqingsen1/article/details/103178567 如果 maven 还没有安 ...

  3. Gradle安装和使用maven仓库配置

    Gradle安装和使用maven仓库配置 一.Gradle安装 1.安装前提 2.安装步骤 二.使用maven仓库配置 三.IDEA中配置gradle 一.Gradle安装 1.安装前提 安装环境:j ...

  4. Gradle 7.0+发布Gradle插件到私有maven仓库笔记

    最近用Java写了一个Gradle插件 插件介绍 https://blog.csdn.net/wang382758656/article/details/124236006?spm=1001.2014 ...

  5. linux gradle仓库位置,如何在Android Studio中使用Gradle发布项目至Jcenter仓库

    简述 目前非常流行将开源库上传至Jcenter仓库中,使用起来非常方便且易于维护,特别是在Android Studio环境中,只需几步配置就可以轻松实现上传和发布. Library的转换和引用 博主的 ...

  6. [maven] settings 文件 本地maven仓库

    <?xml version="1.0" encoding="UTF-8"?><!-- Licensed to the Apache Softw ...

  7. 将jar包发布到本地maven仓库

    项目中在对接第三方服务时经常需要引用第三方的jar包依赖,比如腾讯的短信服务https://cloud.tencent.com/document/product/382/13613 这种场景还是非常多 ...

  8. 如何使用GitHub Action自动发布JAR到Maven仓库

    之前发布开源项目Payment Spring Boot[1]到 Maven 中央仓库我都是手动执行mvn deploy,在CI/CD大行其道的今天使用这种方式有点"原始".于是我一 ...

  9. Gradle 设置 本地maven仓库及发布mavenLocal()路径的方法

    2019独角兽企业重金招聘Python工程师标准>>> 最近在学习Gradle,在配置maven仓库时遇到一个很奇怪的问题.因为之前已经在自己机器上下载了一些maven的本地缓存,所 ...

  10. Maven 添加本地 jar 包、添加依赖 jar 文件到本地 Maven 仓库、引用本地 jar

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 把要用的jar放在固定位置: 2.打开CMD,进入到libs文件夹: 3.运行如下命令: mv ...

最新文章

  1. JavaScript中避免Form重复提交的两种方案
  2. C#之windows桌面软件第五课:串口助手实现定时关闭设备、鼠标移动使按钮颜色变化功能
  3. Leetcode 98. 验证二叉搜索树 (每日一题 20210810)
  4. Bootstrap教程:学习构建第一个Bootstrap 4网站
  5. 大楼通信综合布线系统_什么是网络综合布线系统组成?网络综合布线系统如何选择线缆?...
  6. Kubernetes学习总结(5)——Kubernetes 常见面试题汇总
  7. Bailian2933 停车场收费【水题】
  8. oracle 1亿条数据,如何在十分钟内插入1亿条记录到Oracle数据库?
  9. python列表的事例_python列表使用实例
  10. 发现CSDN发带图片的博文好麻烦,测试一下51的
  11. (一种因疏忽而发生的错误)Qt LNK2019:无法解析的外部符号
  12. Java Web学习(1)
  13. C语言——获取键盘方向键效果
  14. NDIS拨号流程+dhcp
  15. C++ 调用 Python 代码 - Clion QT混合编程 ,各取长处。
  16. bzoj:1725: [Usaco2006 Nov]Corn Fields牧场的安排
  17. Python爬虫实战:QQ空间全自动点赞工具
  18. EverBox开发笔记-2-iCloud-KeyValueStore
  19. 华为手机大变?余承东被传离职转岗,进军美国受阻惹的祸?
  20. 谈谈科学与宗教的关系

热门文章

  1. 傅里叶分解、叠加《matplotlib学习》
  2. 计算机设计大赛海报素材,海报创意设计比赛方案(word版)
  3. android资源文件assets
  4. word2010中插入脚注和尾注
  5. 揭密中国500岁世外异人的真实生活
  6. Pygame实战:牛,几千行代码实现《机甲闯关冒险游戏》,太牛了(保存起来慢慢学)
  7. 车牌识别、证件识别、汽车VIN识别在汽车服务门店中的实际应用
  8. Axure 9 编辑窗口中的负坐标空间
  9. A卡福利 : AMD Fluid Motion Video补帧教程,让你的视频从24帧补到60帧(144)
  10. 超声波测距模块工作原理