1. 程式人生 > >怎麼搭建公司內部Maven伺服器

怎麼搭建公司內部Maven伺服器

Nexus是Maven資源倉庫管理器。如果在公司裡使用Maven,通常應該在本地架設一個Maven資源倉庫伺服器,在代理遠端資源倉庫的同時維護本地資源倉庫,以節省頻寬和時間,Nexus就可以滿足這樣的需要。此外,Nexus還提供了強大的資源倉庫管理功能,構件搜尋功能,它基於REST,友好的UI是一個extjs的 REST客戶端,它佔用較少的記憶體,基於簡單檔案系統而非資料庫。這些優點使其日趨成為最流行的Maven資源倉庫管理器。

一、下載和安裝Nexus

1、下載Nexus

下載介面如下圖所示:

2、安裝Nexus

安裝Nexus只有一個前提,就是必須先安裝JRE,Java 5或Java 6都可以(推薦使用Java 6)。

Nexus提供有兩種安裝方式,一種是內嵌Jetty的bundle繫結包,只要有JRE就能直接執行。第二種方式是WAR,只須簡單的將其釋出到web容器中即可使用。這裡我們重點講解第一種安裝方式。這種方式可以將Nexus(開源版本)作為一個單獨的伺服器來安裝。

Nexus繫結有一個Jetty,Jetty監聽主機(0.0.0.0)上所有配置的IP地址並預設執行在埠8081。

解壓nexus-oss-webapp-1.9.1.1-bundle.zip 至任意目錄,如D:\nexus,然後配置環境變數${NEXUS_HOME},指向目錄D:\nexus\nexus-oss-webapp-1.9.1.1,此即為nexus的安裝目錄。

Nexus安裝目錄總有一個兄弟目錄,名為“sonatype-work”。這個目錄包含有所有資源庫和Nexus的配置資訊,這樣配置在Nexus安裝目錄之外,使得Nexus的版本更新更加容易。預設情況下,該目錄總是作為nexus安裝目錄的兄弟目錄,用來儲存資源內容和配置。如果想要改變該目錄的位置,可以在檔案${NEXUS_HOME}/conf/plexus.properties中修改nexus-work屬性。

3、執行Nexus

進入到以下目錄位置:

在這個目錄下,有許多Nexus執行的平臺可供選擇,如下圖所示:

我用的是windows系統,所以選擇圖中紅框選中的平臺:windwos-x86-32。進到目錄以後,可以看到有許多批處理檔案。如下圖:

如果是第一次執行,首先執行Installnexus.bat批處理程式,將其安裝為Windows服務,然後執行Startnexus.bat批處理程式,啟動Nexus伺服器。如下圖:

當我們啟動Nexus時,我們是在啟動一個web伺服器,預設埠號為0.0.0.0:8081。Nexus執行在名為Jetty的Servlet容器中,它由一個名為“Tanuki Java Service Wrapper”的本地服務包裝器啟動。可以通過配置這個service wrapper,將Nexus作為一個Windows服務或一個Unix daemon執行。

啟動以後,Nexus將處於執行狀態並在8081埠上監聽為當前主機配置的所有IP地址(0.0.0.0)。要使用Nexus,首先開啟一個瀏覽器,鍵入URL:http://localhost:8081/nexus。(也可用127.0.0.1或其他配置的IP地址)。這時會開啟Nexus的初始歡迎介面,如下圖所示:

單擊頁面右上角的【log in】連結,會彈出登入對話方塊,預設的使用者名稱是“admin”,密碼是“admin123”。如下圖所示:

登入後介面如下:

二、配置Nexus

以管理員身份登陸成功後,會看到左邊的導航欄增加了很多內容。在這裡,我們可以管理倉庫,配置Nexus系統,管理任務,管理使用者,角色,許可權,檢視系統的RSS源,管理及檢視系統日誌,等等。可以看到Nexus的功能十分豐富和強大。在本教程中,我們只介紹一些最基本的管理和操作。

1、修改密碼

在管理介面左側欄,選擇【Security】|【Change Password】,會彈出密碼修改對話方塊。建議修改預設密碼,以保證安全。

2、設定遠端資源庫索引

在Nexus中,使用者管理的資源庫有三種類型(virtual除外):

  • hosted,本地資源庫,通常我們會部署自己的構件到這一型別的資源倉庫。
  • proxy,代理資源倉庫,它們被用來代理遠端的公共資源倉庫,如maven中央資源倉庫。
  • group,資源倉庫組,用來合併多個hosted/proxy資源倉庫,通常我們配置maven依賴資源倉庫組。

Nexus代理三個重要的遠端資源庫:Maven Central資源庫、Apache Snapshot資源庫和Codehaus Snapshot資源庫。每個遠端資源庫都包含有成千上萬的artifact,全部下來是不切實際的。所以Nexus中只維護它們的索引,使用這些索引來搜尋artifact,需要的時候再下載內容。不過預設情況下是禁止下載這些索引的,這就需要通過配置允許下載索引。步驟如下:

在左側欄中,選擇【Views/Repositories】|【Repositories】,右側會開啟使用者管理的資源列表。找到上述的三個遠端資源庫,在下方的屬性視窗,將“Download Remote Indexes”設為“true”,並儲存修改。如下圖所示:

在Nexus下載遠端資源庫索引檔案之後,我們就可以在本地搜尋遠端資源庫的所有構件(artifact)了。

3、管理資源庫

在左側欄中,選擇【Views/Repositories】|【Repositories】,右側會開啟使用者管理的資源列表。在最上面一欄,我們可以更新、新增和刪除資源庫。如下圖:

4、管理Maven倉庫組

Nexus中倉庫組的概念是Maven沒有的,在Maven看來,不管你是hosted也好,proxy也好,或者group也好,對我都是一樣的,我只管根據groupId,artifactId,version等資訊向你要構件。為了方便Maven的配置,Nexus能夠將多個倉庫,hosted或者proxy合併成一個group,這樣,Maven只需要依賴於一個group,便能使用所有該group包含的倉庫的內容。

Nexus預定義了“Public Repositories”倉庫組,預設合併所有預定義的Release倉庫。

點選列表中的“Public Repositories”,然後選擇下方的"Configuration" Tab,在配置面板中,將右邊“Avaiable Repositories”中的資源庫移動到左邊的“Ordered Group Repository”中即可,如圖:

三、配置Maven使用本地Nexus

要使用Nexus,我們需要配置我們的Maven檢查Nexus,而不再是公共資源庫。要達到這個目的,我們需要在~/.m2/settings.xml(Maven 3.0.3 為%MAVEN_HOME%\conf\settings.xml)檔案中編輯映象設定(mirror setting)。

這一章,我們首先演示怎樣配置Maven使用我們安裝的Nexus取代直接從Maven中央資源庫獲取artifact。接下來,我們將覆蓋中央資源庫並演示Nexus的工作,返回來,我們將提供一個更加靈敏的setting設定,這個設定將覆蓋release和snapshot。

1、配置Maven使用單一Nexus組

如果我們調整Nexus用於區域網內部開發,我們應該配置一個單一的Nexus組,讓它包含release和snapshot。要達到這個目的,新增snapshot資源庫到我們的公共組(public group),並向Maven的設定檔案~/.m2/settings.xml中(Maven 3.0.3 為%MAVEN_HOME%\conf\settings.xml)新增如下的映象配置:

在上面的檔案中,我們定義了一個單一的profile:nexus。配置這個nexus profile用來使用http://central 偽URL從中央資源庫下載。這個URL被同一settings.xml檔案中的映象設定所覆蓋,並指向我們的單一Nexus組的URL。然後在activeProfiles元素中列出該nexus組作為一個活動的profile。

2、為缺失的依賴庫新增自定義資源庫

如果我們配置Maven的settings.xml列出Nexus的公共組作為所有資源庫的映象,那麼可能會遇到不能從本地Nexus安裝獲取artifact(構建)的問題。這通常是因為我們試圖構建一個在pom.xml定義了自定義資源庫和snapshotRepositories的專案引起的。當我們遇到包含有在pom.xml中自定義資源元素的專案時,將這個資源新增到Nexus作為一個新的代理資源庫,然後將這個新的代理資源庫新增到公共組。

3、新增兩個新的資源庫

要新增一個資源庫,首先作為管理員登入,單擊左側欄Views/Repositories面板中導航選單中的Repositories連結。單擊這個連結會出現一個視窗,列出Nexus已知的所有資源。要新增新的資源庫,單擊位於資源列表正上方的【Add…】連結,這時會出現一個下拉列表,有這麼幾個選項:Hosted Repository, Proxy Repository, Virtual Repository, and Repository Group。因為我們要建立一個代理資源庫,所以單擊【Proxy Repository】。如下圖所示:

4、將新增的新資源庫加入公共資源庫(Public Repositories)

將新增的新資源庫加入公共資源庫很簡單。選擇左側欄【Views/Repositories】|【Repositories】,在右側出現的資源列表中,單擊【Public Repositories】,在下方出現的配置視窗中,將右側的【Available Repositories】中新新增的兩個資源庫匯入到左側的【Ordered Group Repositories】中,然後單擊【Save】即可。如下圖所示:

這樣配置以後,讓團隊中所有開發者都指向Nexus中的Public Repository,以後不管我們怎樣調整Nexus中的資源庫,都不需要團隊中的開發者改變他們的本地配置。而管理者對團隊應該使用哪個/哪些資源就有了更多地控制

相關推薦

怎麼搭建公司內部Maven伺服器

Nexus是Maven資源倉庫管理器。如果在公司裡使用Maven,通常應該在本地架設一個Maven資源倉庫伺服器,在代理遠端資源倉庫的同時維護本地資源倉庫,以節省頻寬和時間,Nexus就可以滿足這樣的需要。此外,Nexus還提供了強大的資源倉庫管理功能,構件搜尋功能,它基於REST,友好的UI是一個ext

eclipse 整合maven、git。 eclipse 建立maven專案並上傳到騰訊git(或阿里雲git、gitlab、github、公司內部git伺服器等git倉庫)

我們先起git倉庫和專案起好名字 git倉庫名:TestGit 專案名:TestGit   1、下載安裝git: https://blog.csdn.net/xiaoshizi4/article/details/83478594 2、下載安裝maven:&nb

搭建公司內部的nuget伺服器

為什麼搭建公司內部的nuget伺服器?   1、分工協作,公共程式碼引用的問題   2、垃圾程式碼  不好意思直接push到 nuget.org 上   3、公司不讓開源(其實主要是 程式碼垃圾  不好意思)   Nuget.Server 可以部署在windows se

DNS域名解析之搭建公司內部域--技術流ken

  什麼是DNS  DNS( Domain Name System)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網路服務命名系統,它用於TCP/IP網路,它所提供的服務是用來將主機名和域名轉換為IP地址的工作。DNS就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示

使用linux+samba搭建公司檔案共享伺服器

公司需要配置一臺備份伺服器,用於日常各資料庫、伺服器、公司員工進行資料備份。各備份賬號需要有一定的許可權配置和限額配置的功能,網上查了一下資料,決定使用samba服務實現。下面就簡單粗暴的記錄一下,以便日後使用,詳細的說明就不再列出了,有需要再自己百度吧。採購兩塊4T的硬碟,

搭建公司ubuntu 編譯伺服器 Xshell samba SVN 固定伺服器ip

下面我們來共享群組可讀寫資料夾,假設你要共享的資料夾為: /home/administrator/panda 首先建立這個資料夾 mkdir /home/administrator/panda chmod 777 /home/administrator/panda 備份並編輯smb.conf允許網路使用者訪

搭建公司私有MAVEN倉庫過程

一、下載maven          

使用npm私有伺服器儲存公司內部強業務型別元件(一):npm私有伺服器搭建

1:安裝centOS虛擬機器 2:安裝完成虛擬機器後完成後開啟系統網絡卡: 進入到/etc/sysconfig/network-scprits/ 開啟ifcfg-ens33檔案 找到 ONBOOT=NO 改成 ONBOOT=yes 3:更新yum: yum update 4:修改虛擬機器改為橋接

《阿里雲伺服器搭建》------ 安裝Maven

本系列教程的搭建環境為阿里雲伺服器,其他伺服器可作為參考。 本文主要講述在伺服器中搭建Maven 開啟maven的官網下載頁 http://maven.apache.org/download.cgi 然後找到相應的tar.gz壓縮包,然後右鍵選擇【複製連結地址】

CentOS7上搭建Maven伺服器

 1. 安裝JAVA #yum install java #java -version java version "1.7.0_101" OpenJDK Runtime Environment (rhel-2.6.6.1.el7_2-x86_64 u101-b00) O

如何在nuget上傳自己的包+搭建自己公司的NuGet伺服器(新方法)

建立一個包(vs其實也是可以製作的,我這邊說最簡單的方法) 新增資源包並修改metadata 儲存一下 先說第一種上傳方法: 自帶的上傳: 完事 還用這個軟體,ctrl+P 輸入網址和key(自己搭建的nuget也可以這麼釋出) key在這看:

史上最全使用Nexus搭建Maven伺服器詳細配置

為什麼要搭建nexus私服,原因很簡單,有些公司都不提供外網給專案組人員,因此就不能使用maven訪問遠端的倉庫地址,所以很有必要在局域網裡找一臺有外網許可權的機器,搭建nexus私服,然後開發人員連到這臺私服上,這樣的話就可以通過這臺搭建了nexus私服的電腦訪問mav

公司內網搭建spring boot maven下載jar包失敗的處理方法

前段時間,部門決定重新搭建新框架,轉為現在火熱的spring boot。由於之前沒有接觸過,因此自己在網上找資料學習,學習初期,搭建工程專案時遇到了一個問題:按照教程步驟,在家裡成功建立工程,在公司卻失敗,報錯connect timeout。 經過排查,發現是因為兩者網路環

搭建公司nuget伺服器,nuget命令列詳解

1:搭建伺服器     安裝iis -- 不在詳述     使用vs新建web空網站-

搭建項目Maven+springMVC+hibernate時,JUnit測試出現報ClassNotFoundException錯誤的解決

== exception net sso data found exc blog mta 近期在搭建Maven+springMVC+hibernate項目,正常啟動項目時一切正常。但JUNIT測試時出現報ClassNotFoundException錯

使用docker搭建公司redmine服務器

文件復制 如果 new 公司 便在 orm roo bit 內容 What is Redmine?   Redmine is a flexible project management web application. Written using the Ruby on

公司內部傳遞的Java技術問答集錦

enter url html 另一個 sql 打開 patch head 銷毀 1 說出Servlet的生命周期,並說出Servlet和CGI的區別 Servlet被服務器實例化後,容器運行其init方法,請求到達時運行其service方法,service方法自動派遣運行與

nginx實現虛擬主機ssl加密,註意此方法只能在公司內部使用

nginx 虛擬主機 ssl 實現虛擬主機ssl加密,註意此方法只能在公司內部使用 1,生成證書及私鑰 - 進入/etc/pki/tls/certs目錄 cd /etc/pki/tls/certs - 執行make +證書名,"註意:文件後綴很重要,輸入

公司內部網絡創建DNS域名解析

DNS DNS部署 linux linux運維 在開發生產中,提供內網絡的web域名解析給研發部門去研發,而不需要將域名提供給外網! yum install -y bind 安裝DNS服務vi /etc/named.conf 修改主配置文件vi /etc/named.rfc1

一個老鳥發的公司內部整理的 Android 學習路線圖

TCP/IP -i 組件 blog PE sam max 編輯 itl jixiaohua發了一篇一個老鳥也發了一份他給公司內部小夥伴整理的路線圖。另一份 Android 開發學習路線圖。可惜不是MarkDown格式的,所以jixiaohua直接上傳的截圖,在jixiaoh