DevOps之nexus

DevOps之nexus
1、Nexus的介紹web

1.私服的介紹
DevOps之nexus
  私服是指私有服務器,是架設在局域網的一種特殊的遠程倉庫,目的是代理遠程倉庫及部署第三方構建.有了私服以後,當maven須要下載構件時,直接請求私服,私服上存在則下載到本地倉庫;不然,私服請求外部的遠程倉庫,將構件下載到私服,在提供給本地倉庫下載。
2.Nexus的介紹
  Nexus是Maven倉庫管理器,也能夠叫Maven的私服。Nexus是一個強大的Maven倉庫管理器,它極大地簡化了本身內部倉庫的維護和外部倉庫的訪問。利用Nexus你能夠只在一個地方就可以徹底控制訪問和部署在你所維護倉庫中的每一個Artifact。Nexus是一套「開箱即用」的系統不須要數據庫,它使用文件系統加Lucene來組織數據。
3.Nexus的優點
 節省外網帶寬:大量對於外部倉庫的重複請求會消耗帶寬,利用私服代理外部倉庫,能夠消除對外的重複構件下載,下降帶寬的壓力。
 加速maven的構建:不停地鏈接請求外部倉庫十分的耗時,Maven在執行構建的時候不停地檢查遠程倉庫的數據。利用私服,Maven只檢查局域網的數據,提升構建的速度。
 部署第三方構建:當某個構件沒法從任何一個外部遠程倉庫得到。創建私服以後,即可以將這些構件部署到私服,供內部的Maven項目使用。
 提升穩定性加強控制: Maven構建高度依賴於遠程倉庫,所以,當網絡不穩定的時候,Maven構建也會變得不穩定,甚至沒法構建。私服緩存了大量構建,即便暫時沒有網絡,Maven也能夠正常的運行。
 下降中央倉庫的負荷:使用私服能夠避免不少對中央倉庫的重複下載,下降中央倉庫的壓力。

2、Nexus的安裝和功能介紹
1.Nexus的安裝
下載地址https://www.sonatype.com/download-oss-sonatype?hsCtaTracking=920dd7b5-7ef3-47fe-9600-10fecad8aa32%7Cf59d5f10-099f-4c66-a622-0254373f4a92(這裏我選擇是3.x,Windows版本) nexus-3.15.2-01-win64.zip
解壓以後,其中有幾個重要的目錄文件:
 etc目錄下nexus-default.properties文件可配置默認端口和host及訪問根目錄。
 bin目錄,按住Shift鍵右鍵鼠標,選擇「在此處打開命令窗口」,安裝服務nexus.exe /install,卸載服務nexus.exe /uninstall,運行命令:nexus.exe /run
 bin目錄下nexus.vmoptions文件,適當調整內存參數,防止佔用內存太大
安裝服務以後,在cmd下進入nexus的bin目錄,執行命令:nexus.exe/run,並回車。
DevOps之nexus
看到如上界面,表示啓動成功,localhost:8081 訪問nexus界面。

2.Nexus web界面的功能介紹
  (1) 建立用戶
DevOps之nexus
DevOps之nexus數據庫

  (2) 查看nexus的系統信息
DevOps之nexus緩存

  (3) nexus倉庫概念介紹
DevOps之nexus
Name:服務器

  • maven-central:maven中央庫,默認從https://repo1.maven.org/maven2/拉取jar
  • maven-releases:私庫發行版jar
  • maven-snapshots:私庫快照(調試版本)jar
  • maven-public:倉庫分組,把上面三個倉庫組合在一塊兒對外提供服務,在本地maven基礎配置settings.xml中使用。
    Type:
  • group(倉庫組類型):又叫組倉庫,用於方便開發人員本身設定的倉庫
  • hosted(宿主類型):內部項目的發佈倉庫(內部開發人員,發佈上去存放的倉庫)
  • proxy(代理類型):從遠程中央倉庫中尋找數據的倉庫(能夠點擊對應的倉庫的Configuration頁簽下Remote Storage Location屬性的值即被代理的遠程倉庫的路徑);
    Public Repositories下的倉庫 :
  • 3rd party: 沒法從公共倉庫得到的第三方發佈版本的構件倉庫,即第三方依賴的倉庫,這個數據一般是由內部人員自行下載以後發佈上去
  • Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫
  • Central: 用來代理maven中央倉庫中發佈版本構件的倉庫
  • Releases: 內部的模塊中release模塊的發佈倉庫,用來部署管理內部的發佈版本構件的宿主類型倉庫;release是發佈版本
  • Snapshots:發佈內部的SNAPSHOT模塊的倉庫,用來部署管理內部的快照版本構件的宿主類型倉庫;snapshots是快照版本,也就是不穩定版本
    因此:自定義構建的倉庫組代理倉庫的順序爲:Releases,Snapshots,3rd party,Central。
    DevOps之nexus
      (4) Search
    就是相似Maven倉庫上的搜索功能,就是從私服上查找是否有哪些包。
    支持模糊查詢。
    DevOps之nexus
    能夠進入具體的目錄進行詳細查詢:
    DevOps之nexus
      (5) broswe
    DevOps之nexus
    查看具體的倉庫下有哪些jar,能夠點擊鏈接進入其目錄查看:
    DevOps之nexus

    3. Nexus系統配置
      (1)Blob Stores
    文件存儲的地方,建立一個目錄的話,對應文件系統的一個目錄,如圖所示:
    DevOps之nexus
      (2)Repositories
    DevOps之nexus
    點擊建立以後,能夠看到有各類類型的倉庫:
    DevOps之nexus
    上面介紹了不一樣類型的倉庫的做用:
       Proxy:這裏就是代理的意思,代理中央Maven倉庫,當PC訪問中央庫的時候,先經過Proxy下載到Nexus倉庫,而後再從Nexus倉庫下載到PC本地。
       值得注意的是:在建立proxy類型的倉庫時,須要注意如下幾個參數配置:
    DevOps之nexus
    DevOps之nexus
    DevOps之nexus
    Name:就是爲代理起個名字
    Remote Storage: 代理的地址,Maven中央倉庫的地址爲: https://repo1.maven.org/maven2/
    Blob Store: 選擇代理下載包的存放路徑

       Hosted:Hosted是宿主機的意思,就是怎麼把第三方的Jar放到私服上。
       值得注意的是:
    DevOps之nexus

DevOps之nexus
DevOps之nexus
Name:就是爲hostsed起個名字。
Hosted有三種方式:已經發布(Releases)、未發佈(Snapshot)、混合(Mixed)。
Deployment Pollcy:須要把策略改爲「Allow redeploy」。

3、Nexus3搭建Maven私有庫
 這裏分爲兩個步驟:一是將本身編寫的程序部署到nexus中,二是將私有倉庫中的依賴,應用到本地。
  (1)本地引用私服倉庫的依賴:
   首先咱們在使用私服的時候,配置的倉庫爲maven-public,由於這裏集成了三個倉庫:
DevOps之nexus
因此咱們在maven項目中的pom中須要加入如下內容:網絡

<!—指定使用的倉庫-->
<repositories>
        <repository>
            <id>nexus</id>
            <name>nexus</name>
            <url>http://localhost:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <!—指定倉庫的插件-->
    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <name>nexus</name>
            <url>http://localhost:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
</releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

注意:這裏的URL在nexus界面中的具體倉庫中複製
DevOps之nexus
可是這樣的話以後本項目才能使用上面的倉庫,若是想全部的maven項目均可以使用以上的倉庫,就須要配置maven的setting.xml文件:(這裏的maven是本地的)maven

<!—在profiles標籤下加入-->
    <profile>
      <repositories>
        <repository>
          <id>central</id>
          <name>central</name>
          <url>http://localhost:8081/repository/maven-central/</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
</profile>
<!—追加激活profile-->
<activeProfiles>    
    <activeProfile>central</activeProfile>      
</activeProfiles>
注意:這裏的URL是須要使用的倉庫的URL。

  (2)將開發的程序,部署到nexus中ide

#首先在pom文件中設置須要部署到的倉庫
<distributionManagement>
        <repository>
            <id>user-release</id>
            <name>User Project Release</name>
            <url>http://localhost:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>user-snapshots</id>
            <name>User Project SNAPSHOTS</name>
            <url>http://localhost:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
#而後配置權限在settings.xml:
    <server>   
        <id>user-release</id>   
        <username>admin</username>   
        <password>admin123</password>   
    </server> 
    <server>   
        <id>user-snapshots</id>   
        <username>admin</username>   
        <password>admin123</password>   
    </server>
注意:這裏的id名稱要和pom文件中的distributionManagement—> repository下的一致。

以後,你在將maven項目,clean deploy後,就能在本身搭建的私服中看見剛剛打包的項目,而且,能在pom中配置依賴,將本身的打包的項目,導入其餘的項目中。url

  (3) 宿主庫的部署
就是怎麼把第三方的Jar放到私服上。
首先在nexus中找到相應的hosted類型的倉庫:
在Upload中都有:
DevOps之nexus
隨便任意點擊一個:
DevOps之nexus
最後點擊upload便可。
DevOps之nexus
在相應的庫中就能夠找到,若是想在本身的maven中使用它,就能夠根據上一節的配置,
這裏注意:依賴的查看點擊 :DevOps之nexus
DevOps之nexus
這樣咱們就能夠引用第三方的jar包,在本身的項目中使用!!!插件

相關文章
相關標籤/搜索