如何封裝一個通用發布版本
步驟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文章
378瀏覽量
42146 -
maven
+關注
關注
0文章
30瀏覽量
4049 -
gradle
+關注
關注
0文章
26瀏覽量
1050
發布評論請先 登錄
相關推薦
熱點推薦
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
?1044次閱讀
idea配置了maven但不顯示pom
配置 Maven 是一個開發者常見的任務,通過 Maven 可以更方便地管理項目依賴和構建過程。在配置 Maven 的過程中,我們可能會遇到一些問題,比如沒有正確顯示 pom 文件。本文將詳細介紹
idea如何添加maven
Maven是一個開源的項目管理工具,它提供了一種簡單的方式來管理項目的依賴關系、構建過程和發布部署。本文將詳細介紹如何將Maven添加到你的項目中,并使用它來管理你的項目。 第一步:安裝Mav
使用Nexus在本地搭建npm、yum和maven私有倉庫
使用Nexus在本地搭建npm、yum和maven私有倉庫 為保證在無互聯網的情況下,可正常搭建、構建項目,并自動化部署項目,本系統采用Nexus+Jenkins+Maven+Gitl
如何使用Maven進行組件化發布(下)
評論