中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

RAINBOND源碼如何構建JAVA項目配置MAVEN倉庫

發布時間:2021-12-07 14:09:40 來源:億速云 閱讀:218 作者:小新 欄目:云計算

這篇文章主要為大家展示了“RAINBOND源碼如何構建JAVA項目配置MAVEN倉庫”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“RAINBOND源碼如何構建JAVA項目配置MAVEN倉庫”這篇文章吧。

概述

根據大量的Rainbond用戶反饋,我們發現在Rainbond源碼構建java-maven項目的過程中,最容易出現問題的一環就是獲取構件失敗。

比如:

[ERROR] Failed to execute goal on project bq-insurance-third-party: Could not resolve dependencies for project···

這樣的報錯。

下載與安裝Maven

Rainbond默認提供多種maven版本供用戶選擇,對應版本及相應的資源地址獲取見下表:

Maven版本獲取地址
3.3.1http://lang.goodrain.me/jvm/maven/maven-3.3.1.tar.gz
3.0.5http://lang.goodrain.me/jvm/maven/maven-3.0.5.tar.gz
3.1.1http://lang.goodrain.me/jvm/maven/maven-3.1.1.tar.gz
3.2.5http://lang.goodrain.me/jvm/maven/maven-3.2.5.tar.gz
3.3.9http://lang.goodrain.me/jvm/maven/maven-3.3.9.tar.gz

如果遇到Maven構建失敗,請優先確認當前maven版本有關。如果不能確定,可以下載上述資源,嘗試在本地構建。

清除構建緩存

Rainbond為每一個服務的構建環境提供緩存,Maven項目會對maven的安裝目錄,配置目錄,和本地倉庫目錄提供了緩存,用戶通過以下設置清理緩存。

<img src="https://cache.yisu.com/upload/information/20210523/355/709593.png" >

用戶應該在首次構建成功前一直開啟清除構建緩存直至構建成功。這樣可以防止緩存到了不完整或者錯誤的包,導致構建一直失敗。切記,構建會優先去緩存中獲取構件。

默認Maven構建運行環境設置解析

Rainbond源碼構建java-maven項目時,提供了默認的構建運行環境設置。

<img src="https://grstatic.oss-cn-shanghai.aliyuncs.com/images/5.1.5/jdk&maven/maven2.png" >

  • 開啟清除構建緩存: 點擊即可在每次構建之前清除構建緩存。默認不開啟。

  • Maven版本: 選擇Maven版本,默認3.3.1。

  • 禁用Maven Mirror: 點擊后禁用Maven Mirror設置,即獲取構件時不再通過rbd-repo(Artifactory)服務,直接前往中央倉庫或者pom.xml中指定的倉庫獲取構件。后續的 MAVEN MIRROR OF MAVEN MIRROR URL 設置失效。默認不會禁用。

  • MAVEN MIRROR OF: 在開啟mirror功能后,由該參數來指定對哪些倉庫進行鏡像緩存。默認為中央倉庫(central),當指定為 * 的時候,會將所有倉庫進行鏡像緩存。

  • MAVEN MIRROR URL: 指定鏡像倉庫地址,默認為Rainbond自帶的 maven.goodrain.me (即rbd-repo服務地址)。如果用戶具有公司內部使用的私服,推薦直接指定為其地址,指定格式類似:http://IP:8081/nexus/content/groups/public/

  • Maven構件參數: 默認設置為忽略單元測試。用戶根據項目情況自行設置。

  • Maven構件全局參數: 默認值為 clean dependency:list install 。需要注意的是,dependency:list 需要下載特定的maven plugin,故而,當用戶處于一個離線環境,并且使用的私服中沒有對應的構件時,必然會發生構建失敗的情況。請更改為 clean install

  • MAVEN構建Java參數配置: 默認配置為 -Xmx1024m。該選項指定了maven構建時使用的內存,根據用戶環境自行設置。

需要指出的是,指定MAVEN MIRROR OF 參數的時候,需要考慮所指定的倉庫是否可以被識別。倉庫名是在 maven所使用的 setting.xml 文件中指定的,而Rainbond默認使用的 setting.xml 中只會添加上述的各項配置!!!所以用戶日常構建所使用的自定義的倉庫名不會被識別。這種情況下,可以指定為 * 即可緩存所有的構件;或者,使用用戶自己的 setting.xml 文件來替換Rainbond默認文件。

自定義Setting.xml

用戶可以配置特殊的環境變量,來指定自己在本地構建項目時所使用的 setting.xml,指定后,默認構建環境配置中的選項都將失效。

這樣的配置將會是一個終極解決方案,用戶在本地可以構建,那么在Rainbond就也可以構建。因為使用指定的setting.xml文件后,Rainbond構建環境的一切,都和本地不再有區別。

  • 用戶可以將自己以往使用的setting.xml 放在項目源碼目錄中,當該文件處于源碼根目錄下的時候,請這么做: 設置環境變量 BUILD_MAVEN_SETTINGS_PATH=/app/setting.xml,即可使用到該文件。

    Rainbond源碼構建時,默認會將源碼目錄全部文件存放在 /app 目錄下,故而該文件的路徑變為了 /app/setting.xml

  • 如果setting.xml中存在敏感信息,不宜出現在源碼目錄中。那么可以將其上傳到諸如對象存儲等處,提供下載地址。然后: 設置環境變量 MAVEN_SETTINGS_URL=http://somewhere/setting.xml來使用該文件。

部署本地私服倉庫

有的用戶公司內部并沒有倉庫私服,同時又希望可以在離線的環境下使用Rainbond源碼構建maven項目。那就需要利用rbd-repo(Artifactory)服務搭建自己的倉庫私服,并把依賴包上傳上去。

  • 訪問 http://管理節點IP:8081 并用管理員賬號(admin/password)登錄。

  • 創建 Local 類型的Maven倉庫。示例創建一個Local 類型的Maven倉庫,名稱為 repo-local

  • 向本地倉庫repo-local上傳自己的jar包

  • 查看依賴聲明信息

  • 將repo-local添加到libs-release 虛擬倉庫中

<img src="https://cache.yisu.com/upload/information/20210523/355/709595.png" width="85%" />

<img src="https://cache.yisu.com/upload/information/20210523/355/709596.png" width="80%" />

<img src="https://cache.yisu.com/upload/information/20210523/355/709597.png" width="90%" />

訪問http://<管理節點>:8081/artifactory/list/libs-release/或者管理節點訪問maven.goodrain.me看能否列出你新添加的構件。

  • 如果用戶已經擁有完整可用的repository文件夾,也可以使用 import 功能將整個倉庫完整上傳到repo-local本地倉庫中去。

<img src="https://cache.yisu.com/upload/information/20210523/355/709599.png" >

<img src="https://cache.yisu.com/upload/information/20210523/355/709601.png" >

完整上傳提供了兩種方式:從目錄掛載導入,或者上傳zip。其中第一種方式需要注意的是,上傳的路徑是要在rbd-repo容器中的路徑上傳,所以需要事先執行路徑掛載。第二種方式,則需要注意文件上傳大小限制,該值可以在admin —— Configuration——General Configuration 中設置。

我在本地可以構建,為何在Rainbond無法構建?

通讀本篇文檔,我們可以發現執行maven構建需要注意的細節很多,這些微小的細節都可能導致構建失敗。

但是可以肯定的一點就是,在本地可以構建,那么在網絡條件相同的Rainbond環境中就可以構建。因為Rainbond執行源碼構建時,使用的原理和普通的maven構建并無不同。需要注意的,就是構建環境上微小的差別。

以下是遇到這樣的疑惑時,排查的思路:

  • 版本差異: 這個差異包括了maven版本的差異,也包括JDK的版本差異(即使是同個大版本下不同的小版本)。遇到無法確定原因的報錯,這將是首要需要檢查的方面。有關JDK版本如何選擇,以及出現版本差異影響如何處理,請參見文檔: RAINBOND源碼構建JAVA項目選取JDK

  • GZIP STDIN NOT IN GZIP FORMAT: 構建日志如這種報錯,基本可以確定為獲取JDK或Maven安裝包失敗,結合文檔 源碼構建提示GZIP STDIN NOT IN GZIP FORMAT RAINBOND源碼構建JAVA項目選取JDK 加以解決。

  • 構建緩存: 再次強調,用戶應該在首次構建成功前一直開啟清除構建緩存直至構建成功。這樣可以防止緩存到了不完整或者錯誤的包,導致構建一直失敗。切記,構建會優先去緩存中獲取構件。

  • 獲取構件失敗: 這個問題的答案并不惟一,可能出現的情況非常多。

    • 首先,結合構建日志中構件下載地址,來判斷獲取構件失敗時,是否使用倉庫私服,使用的是默認私服(maven.goodrain.me)抑或是用戶自定義私服(用戶自行指定的artifactory或nexus)。

    • 如果禁用Mirror功能,則默認使用中央倉庫。這時需要判斷網絡是否可以訪問到中央倉庫,當前構件是否在中央倉庫中存在。

    • 如果未禁用Mirror功能,并且使用了Rainbond默認倉庫私服(maven.goodrain.me),則默認代理中央倉庫。這時需要判斷網絡是否可以訪問到中央倉庫,當前構件是否在中央倉庫中存在。

    • 如果未禁用Mirror功能,并且使用了用戶自定義私服。則需要判斷網絡是否可以訪問到指定的倉庫私服,當前構件是否在指定倉庫私服中存在。

  • 401認證失敗: 如果構建報錯:

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project dx-id: Failed to deploy artifacts: Could not transfer artifact com.dx.application:dx-id:pom:0.0.1-20190727.012351-2 from/to snapshots (http://******:8081/artifactory/libs-release): Failed to transfer file: http://*******:8081/artifactory/libs-release/com/dx/application/dx-id/0.0.1-SNAPSHOT/dx-id-0.0.1-20190727.012351-2.pom. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]


    說明訪問用戶指定的倉庫私服是需要認證信息的,而認證信息一般儲存在用戶日常使用的 setting.xml 文件中。故而,解決這個問題最好的方式,是使用上文中提到的 自定義Setting.xml 的方式。再次強調, 自定義Setting.xml 是作為終極解決方案存在的,同樣適用于其他由于用戶倉庫私服特殊設置所導致的構件獲取失敗。

  • 我的倉庫足夠我的項目構建所需,卻依然報錯有構件找不到: Rainbond默認的 Maven構件全局參數clean dependency:list install 。需要注意的是,dependency:list 需要下載特定的maven plugin,故而,當用戶處于一個離線環境,并且使用的私服中沒有對應的構件時,必然會發生構建失敗的情況。請更改為 clean install

  • 使用rbd-repo代理了其他倉庫私服: 用戶是可以使用rbd-repo組件來代理其他的遠程倉庫私服的。但是不同的倉庫私服之間傳輸構件有可能會出現奇奇怪怪的問題。故而,我們推薦用戶使用 MAVEN MIRROR URL直接指定遠程倉庫地址,而不是使用rbd-repo代理。

以上是“RAINBOND源碼如何構建JAVA項目配置MAVEN倉庫”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

威海市| 长泰县| 宜川县| 广汉市| 五莲县| 张北县| 仪陇县| 饶河县| 英德市| 克拉玛依市| 彝良县| 弋阳县| 凤翔县| 镇赉县| 三江| 西丰县| 桑植县| 乐东| 永靖县| 固阳县| 顺平县| 嘉峪关市| 玉田县| 江华| 榆林市| 钟祥市| 东平县| 卓资县| 容城县| 祥云县| 乐平市| 游戏| 丘北县| 乐至县| 新乡市| 朝阳市| 绵竹市| 平顺县| 滕州市| 都安| 二连浩特市|