如何封装一个通用发布版本
步骤1:在项目根目录下创建:
maven_publish.gradle
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
// 是否快照版本
def isSnapShot = Boolean.valueOf(MAVEN_IS_SNAPSHOT)
def versionName = MAVEN_VERSION
if (isSnapShot) {
versionName += "-SNAPSHOT"
}
// 组件信息
pom.groupId = MAVEN_GROUP_ID
pom.artifactId = MAVEN_ARTIFACTID
pom.version = versionName
// 快照仓库路径
snapshotRepository(url: uri(MAVEN_SNAPSHOT_URL)) {
authentication(userName: MAVEN_USERNAME, password: MAVEN_USERNAME)
}
// 发布仓库路径
repository(url: uri(MAVEN_RELEASE_URL)) {
authentication(userName: MAVEN_USERNAME, password: MAVEN_USERNAME)
}
println("###################################"
+ "\\nuploadArchives = " + pom.groupId + ":" + pom.artifactId + ":" + pom.version + "." + pom.packaging
+ "\\nrepository =" + (isSnapshot ? MAVEN_SNAPSHOT_URL : MAVEN_RELEASE_URL)
+ "\\n###################################"
)
}
}
}
这段脚本会读取
MAVEN_IS_SNAPSHOT
配置参数,如果为 true,会在版本号后追加-SNAPSHOT
后缀,表示快照版本。随后声明了两个仓库:repository(…) 声明的是 Release 仓库地址,而 snapshotRepository(…) 声明的是快照仓库地址。Maven 会自动将版本号带 -SNAPSHOT 后缀的组件发布到 snapshotRepository(…) 仓库中,这样就 自动将正式版本和快照版本分发的不同仓库中。
步骤2:声明项目级
gradle.properties配置参数:
MAVEN_SNAPSHOT_URL = /Users/yuhb/workspace/public/DemoHall/snapshotRepository
MAVEN_RELEASE_URL = /Users/yuhb/workspace/public/DemoHall/releaseRepository
MAVEN_USERNAME =
MAVEN_PASSWORD =
MAVEN_IS_SNAPSHOT = true
MAVEN_GROUP_ID = com.yuhb.demo
| 参数描述 |
MAVEN_SNAPSHOT_URL |
快照仓库地址 |
MAVEN_RELEASE_UR |
发布仓库地址 |
MAVEN_USERNAME |
仓库账号 |
MAVEN_PASSWORD |
仓库密码 |
MAVEN_IS_SNAPSHOT |
是否快照版本 |
MAVEN_GROUP_ID |
组织 / 公司的名称 |
MAVEN_ARTIFACTID |
组件的名称(在发布模块配置) |
MAVEN_VERSION |
组件的版本(在发布模块配置) |
步骤 3:在发布模块应用脚本
apply from: '../maven.gradle'
...
步骤 4:在发布模块配置参数 (模块级配置参数会覆盖项目级配置参数)
模块级 gradle.properties
MAVEN_ARTIFACTID = maven
MAVEN_VERSION = v1.0.0
MAVEN_IS_SNAPSHOT = true
...
然后在Gradle面板中找到对应模块下的任务uploadArchives,执行成功后就可以将组建发布对应的maven私服上了
本地aar文件引入的一些技巧:
模块级build.gradle
dependencies {
...
api(name: 'lib-debug', ext: 'aar')
}
repositories {
flatDir {
dirs "libs"
}
}
这种方式如果其他模块需要使用就不方便:
方法1
:
在项目级build.gradle
allprojects {
repositories {
google()
mavenCentral()
flatDir { dirs project(':aarlib').file('libs') } // 文件夹要放在某个 module 内
}
}
这种方式可以在本工程中使用,如果跨工程或者跨设备就不好使了
方法2
:二次打包aar发布到maven仓库
apply plugin: 'maven-publish'
def libPath = project.getProjectDir().getAbsolutePath()
publishing {
publications {
lib1(MavenPublication) {
groupId MAVEN_GROUP_ID
artifactId "lib"
version "v1.0.0"
artifact(libPath + "/libs/lib.aar")
}
lib2(MavenPublication) {
groupId MAVEN_GROUP_ID
artifactId "lib2"
version "v1.0.0"
artifact(libPath + "/libs/lib2.aar")
}
}
repositories {
maven {
// 发布仓库路径
url MAVEN_RELEASE_URL
// 本地仓库地址不适用账号密码
// > Failed to publish publication 'maven' to repository 'maven'
// > Authentication scheme 'all'(Authentication) is not supported by protocol 'file'
// credentials(PasswordCredentials) {
// username = MAVEN_USERNAME
// password = MAVEN_PASSWORD
// }
}
}
}
好了,本文就讲解到这里了,基本涵盖了关于Maven仓库如何使用的大部分知识盲点,内容较多,大家可以收藏起来慢慢消化。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
开发
+关注
关注
0文章
362浏览量
40779 -
maven
+关注
关注
0文章
30浏览量
3693 -
gradle
+关注
关注
0文章
26浏览量
692
发布评论请先 登录
相关推荐
Maven 配置指南
Maven 配置指南http://bbs.edu118.com/forum.php?mod=viewthread&tid=263&fromuid=231(出处: 信盈达IT技术社
发表于 08-28 15:08
Linux部署maven(war包)web 项目
一、说明Linux配置Java环境及安装Tomcat,请参考博文点击打开链接Linux部署maven步骤分为以下几点:1.Eclipse导出war包2.拷贝war包到Linux3.Linux下解压
发表于 07-04 06:40
HarmonyOS组件更新,新增700+开源组件
。开发的脚步永不停歇,在广大组件贡献者的共同努力下,又迎来了第三批组件开源。 一、新增开源组件概览本次新增开源组件,涉及工具、网络、文件数据
发表于 11-18 11:17
YoC组件发布开源操作指南须知
package节点下可以看到添加的组件。2.1.3 创建开发仓库开发者获取解决方案或组件代码后,可以根据自身的需求在代码托管平台上创建组件开发仓库,
发表于 03-09 07:37
Maven管理的jar没有发布到WEB-INFlib下应该如何解决详细方案说明
本文档的主要内容详细介绍的是Maven管理的jar没有发布到WEB-INFlib下应该如何解决详细方案说明。
发表于 05-30 17:07
•9次下载
Linux环境下安装Maven的步骤
安装maven的第一步呢,我们首先得有maven这个东西,我们去它的官网下载永远是最新最权威的,作为开发人员,我们必须要有这种意识,也要养成下载东西去其官网下载的好习惯。
如何理解Maven拉包原理,搞定Maven构建项目
依赖是我们在使用 Maven 构建项目时最常使用的功能,通过依赖标签,我们可以直接从Maven仓库中引入对应的Jar包,无需手动再将Jar添加到目录下了,可谓是十分方便,不过我们除了使用,还需要考虑多模块下依赖之间的关系。
发表于 05-25 09:50
•543次阅读
idea如何添加maven
Maven是一个开源的项目管理工具,它提供了一种简单的方式来管理项目的依赖关系、构建过程和发布部署。本文将详细介绍如何将Maven添加到你的项目中,并使用它来管理你的项目。 第一步:安装Mav
使用Nexus在本地搭建npm、yum和maven私有仓库
使用Nexus在本地搭建npm、yum和maven私有仓库 为保证在无互联网的情况下,可正常搭建、构建项目,并自动化部署项目,本系统采用Nexus+Jenkins+Maven+Gitl
评论