久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

第八節(jié):Maven搭建Nexus私服與權(quán)限管理

 Baruch 2017-10-19
Nexus下載與啟動(dòng):
     下載地址為Nexus官網(wǎng):http://www./nexus/
  • NEXUS OSS [ OSS = Open Source Software,,開源軟件——免費(fèi)]
  • NEXUS PROFESSIONAL -FREE TRIAL [ 專業(yè)版本——免費(fèi)體驗(yàn)--收費(fèi)],。
     
     我們選擇OSS免費(fèi)版,然后選擇操作系統(tǒng),,3.0版本的已經(jīng)默認(rèn)為下載源碼包(bundle版本)而不是war文件,。其中源碼包中包含了jetty容器,也就是說不需要額外的web容器就能直接啟動(dòng),。而war版本的Nexus需要放入額外的web容器例如tomcat中的webapps目錄下才能啟動(dòng),。
     
     下載了3.x - OS X的源碼包之后,解壓文件得到兩個(gè)目錄:
  • nexus-3.3.1-01:該目錄包含了Nexus運(yùn)行時(shí)所需要的文件,,如啟動(dòng)腳本等,。
  • sonatype-work:該目錄包含了Nexus生成的配置文件,日志文件,,倉庫文件等,。
     其中第一個(gè)目錄是運(yùn)行Nexus時(shí)必須的,同一個(gè)版本的Nexus該目錄中的內(nèi)容是一樣的,, 而第二個(gè)目錄是Nexus在運(yùn)行的時(shí)候動(dòng)態(tài)創(chuàng)建的,,里面包含了我們對(duì)倉庫,角色,,權(quán)限,,成員的一些配置信息以及所有我們下載的構(gòu)件。所以當(dāng)我們備份Nexus的時(shí)候,,我們需要備份的是sonatype-work目錄,。
     接著我們啟動(dòng)nexus,在命令行cd到nexus-3.3.1-01目錄下的bin目錄下,,然后輸入./nexus start啟動(dòng)nexus,,這里可能會(huì)出現(xiàn)一個(gè)問題:nexus配置了jetty容器默認(rèn)占用8081端口,我們可以在nexus-3.3.1-01目錄的etc目錄下找到nexus-default.properties文件,,然后修改application-port為我們想要的端口的,。
     我們輸入./nexus 可以看到他提示我們可以使用的幾個(gè)指令:
  • start:在后臺(tái)啟動(dòng)服務(wù),不在界面上打印任何啟動(dòng)或者運(yùn)行時(shí)信息,。
  • run:?jiǎn)?dòng)服務(wù),,但是在界面上打印出啟動(dòng)信息以及運(yùn)行時(shí)信息以及日志信息。
  • stop:關(guān)閉服務(wù)
  • status:查看nexus運(yùn)行狀態(tài)
  • restart:重啟服務(wù)
  • force-reload:強(qiáng)制重載一遍配置文件,,然后重啟服務(wù)
     在linux系統(tǒng)上啟動(dòng)服務(wù)的時(shí)候出現(xiàn)的問題可以參照:http://blog.csdn.net/cuker919/article/details/12052565
     啟動(dòng)服務(wù)之后,,我們就可以在瀏覽器中訪問:http://localhost:8082/ (這里我將端口號(hào)修改為了8082,默認(rèn)8081)
     Nexus的默認(rèn)管理員用戶名和密碼為admin/admin123,。

Nexus的倉庫與倉庫組:
     Nexus的主要的倉庫類型:
  • hosted(宿主):宿主倉庫主要用于存放項(xiàng)目部署的構(gòu)件、或者第三方構(gòu)件用于提供下載,。
  • proxy(代理):代理倉庫就是對(duì)遠(yuǎn)程倉庫的一種代理,,從遠(yuǎn)程倉庫下載構(gòu)件和插件然后緩存在Nexus倉庫中
  • group(倉庫組):對(duì)我們已經(jīng)配置完的倉庫的一種組合策略,。
     我們點(diǎn)擊導(dǎo)航欄中的Repositories鏈接,,看到如下圖界面:
      Nexus內(nèi)置的倉庫就已經(jīng)包含了主要的倉庫類型:
  • maven-central:代理中央倉庫、策略為Release,、只會(huì)下載和緩存中央倉庫中的發(fā)布版本構(gòu)件,。
  • maven-releases:策略為Release的宿主倉庫、用來部署組織內(nèi)部的發(fā)布版本內(nèi)容,。
  • maven-snapshots:策略為Snapshot的宿主倉庫,、用來部署組織內(nèi)部的快照版本內(nèi)容。
  • maven-public:該倉庫將上述所有策略為Release的倉庫聚合并通過一致的地址提供服務(wù),。
  • nuget-hosted:用來部署nuget構(gòu)件的宿主倉庫
  • nuget.org-proxy:代理nuget遠(yuǎn)程倉庫,,下載和緩沖nuget構(gòu)件。
  • nuget-group:該倉庫組將nuget-hosted與nuget.org-proxy倉庫聚合并通過一致的地址提供服務(wù),。
  • maven-public:該倉庫組將maven-central,,maven-releases與maven-snapshots倉庫聚合并通過一致的地址提供服務(wù)。
     我們?cè)贛aven中配置的訪問Nexus的倉庫一般是maven-public倉庫組,,我們向倉庫組我們下載或者上傳構(gòu)件的請(qǐng)求,,倉庫組中沒有實(shí)際的內(nèi)容,他會(huì)轉(zhuǎn)向其包含的宿主倉庫或者代理倉庫獲得實(shí)際構(gòu)件的內(nèi)容,。
     
     我們也可以通過簡(jiǎn)單的配置來創(chuàng)建一個(gè)倉庫或者倉庫組,。當(dāng)我們配置代理倉庫的時(shí)候有幾個(gè)參數(shù)需要注意:
  • Maximum component age:構(gòu)件緩存的最長(zhǎng)時(shí)間,對(duì)于發(fā)布版本的倉庫來說,,這個(gè)值默認(rèn)為-1,,表示構(gòu)件下載后就一直保存著,不再重現(xiàn)下載,;對(duì)于快照版本的倉庫來說,,這個(gè)值默認(rèn)為1440,表示1440分鐘后會(huì)重新緩存代理的構(gòu)件,。
  • Maximum metadata age:倉庫元數(shù)據(jù)文件緩存的最長(zhǎng)時(shí)間,,其他定義如上。
  • Not found cache TTL:表示當(dāng)一個(gè)文件沒有找到后,,緩存這一不存在信息的時(shí)間,。以默認(rèn)的1440分鐘為例,如果某文件不存在,,那在這之后的1440分鐘內(nèi),,如果Nexus再次得到這個(gè)請(qǐng)求,,不會(huì)再查找文件系統(tǒng),而是直接返回不存在,。

配置Maven從Nexus下載構(gòu)件:
     我們可以在項(xiàng)目的POM中配置倉庫和插件倉庫,,當(dāng)然如果我們想要所有的Maven項(xiàng)目都使用私服,可以在settings.xml中配置,,但是settings.xml并不直接支持配置repositories和pluginRepositories,,但是Maven提供了profiles下的profile可以讓我們定義一系列的配置信息,然后指定其激活條件,,能夠定義在settings.xml中的信息有<repositories>,、<pluginRepositories>和<properties>。定義在<properties>里面的鍵值對(duì)可以在pom.xml中使用,,這里我們配置遠(yuǎn)程倉庫的地址和插件倉庫,。
  1. <profiles>  
  2.         <profile>  
  3.             <id>jdk8</id>  
  4.             <activation>  
  5.                 <activebydefault>true</activebydefault>  
  6.                 <jdk>1.8</jdk>  
  7.             </activation>  
  8.             <properties>  
  9.                 <maven.compiler.source>1.8</maven.compiler.source>  
  10.                 <maven.compiler.target>1.8</maven.compiler.target>  
  11.                 <maven.compiler.compilerversion>1.8</maven.compiler.compilerversion>  
  12.             </properties>  
  13.         </profile>  
  14.         <profile>  
  15.             <id>nexusRep</id>  
  16.             <repositories>  
  17.                 <repository>  
  18.                     <id>nexus</id>  
  19.                     <name>Nexus Repository</name>  
  20.                     <url>http://192.168.1.88:8081/nexus/content/groups/public/</url>  
  21.                     <releases><enabled>true</enabled></releases>  
  22.                     <snapshots><enabled>true</enabled></snapshots>  
  23.                 </repository>  
  24.             </repositories>  
  25.              <pluginRepositories>  
  26.                 <pluginRepository>  
  27.                     <id>nexus</id>  
  28.                     <name>Nexus pluginRepository</name>  
  29.                     <url>http://192.168.1.88:8081/nexus/content/groups/public/</url>  
  30.                     <releases><enabled>true</enabled></releases>  
  31.                     <snapshots><enabled>true</enabled></snapshots>  
  32.                 </pluginRepository>  
  33.             </pluginRepositories>  
  34.         </profile>  
  35. </profiles>  
     但是Maven除了從Nexus上下載構(gòu)件之外,還會(huì)時(shí)不時(shí)從中央倉庫下載構(gòu)件,,然而這應(yīng)該是Nexus的工作,,所以我們需要配置一個(gè)鏡像,用
<mirrorof>*</mirrorof>將Maven任何構(gòu)件下載的請(qǐng)求都轉(zhuǎn)發(fā)到私服中,。
  1. <mirrors>  
  2.         <mirror>  
  3.             <id>nexus</id>  
  4.             <name>A Local Nexus Server</name>  
  5.             <url>http://192.168.1.121:8081/nexus/content/groups/public/</url>  
  6.             <mirrorof>*</mirrorof>  
  7.         </mirror>  
  8. </mirrors>  
     這里就有一個(gè)問題,,在這里配置了鏡像,那在<profiles>里配置的遠(yuǎn)程倉庫不是沒有用了嗎,?
     當(dāng)Maven需要下載發(fā)布版或者快照版構(gòu)件的時(shí)候,,他會(huì)首先檢查我們配置的遠(yuǎn)程倉庫中的<releases>和<snapshots>元素,看該類型的構(gòu)件是否可以下載,,如果可以下載,,就轉(zhuǎn)到鏡像地址去下載。所以我們配置的遠(yuǎn)程倉庫中的<url>失效了,,有效的是<releases>和<snapshots>元素,。

使用Maven部署構(gòu)件到Nexus:
     在項(xiàng)目正常開發(fā)中,快照版本的構(gòu)件可以部署到Nexus中策略為Snapshot的例如:maven-snapshots宿主倉庫中,,發(fā)布版本可以部署到Nexus中策略為Release的例如:maven-releases宿主倉庫中,,項(xiàng)目的POM文件配置如下:
  1. <distributionManagement>  
  2.         <repository>  
  3.             <id>Nexus-releases</id>  
  4.             <name>Nexus-releases-repositories</name>  
  5.             <url>http://192.168.1.121:8081/nexus/repositories/releases/</url>  
  6.         </repository>  
  7.         <snapshotRepository>  
  8.             <id>Nexus-snapshots</id>  
  9.             <name>Nexus-snapshots-repositories</name>  
  10.             <url>http://192.168.1.121:8081/nexus/repositories/snapshots/</url>  
  11.         </snapshotRepository>  
  12. </distributionManagement>   
     但是Nexus倉庫對(duì)于匿名用戶是只讀的,所以為了能夠部署構(gòu)件,,還需要在settings.xml文件中配置認(rèn)證信息,。
  1. <servers>  
  2.         <server>  
  3.             <id>nexus</id>  
  4.             <username>admin</username>  
  5.             <password>*****</password>  
  6.         </server>  
  7. </servers>  
     當(dāng)然對(duì)于一些由于許可證因素等無法發(fā)布到公共倉庫的構(gòu)件,我們只能自己下載然后通過Nexus的界面手動(dòng)上傳到私服中,。
     到此為止,,Nexus私服的搭建與配置基本完畢,下面是關(guān)于權(quán)限管理的問題,。
     出于安全性考慮,、需要對(duì)Nexus倉庫進(jìn)行權(quán)限管理,、比如只有管理員才能配置Nexus、某個(gè)項(xiàng)目組有特定的倉庫,、等等,。

Nexus的訪問控制模型:
     Nexus是基于權(quán)限(Privilege)做訪問控制的。一個(gè)用戶可以被賦予一個(gè)或者多個(gè)角色,、一個(gè)角色可以包含一個(gè)或者多個(gè)權(quán)限,、還可以包含一個(gè)或者多個(gè)角色。用戶必須擁有相應(yīng)的角色繼而擁有相應(yīng)權(quán)限,、才能做相應(yīng)操作,,但是有一點(diǎn)要注意這里的權(quán)限都是基于倉庫的,,即對(duì)倉庫的增刪改查權(quán)限,。
     在2.x版本, Nexus預(yù)定義了一些常用且重要的角色,,如:
  • UI:Basic UIPrivileges:包含了訪問Nexus界面必須的最基本的權(quán)限,。
  • UI:RepositoryBrowser:包含了瀏覽倉庫頁面所需要的權(quán)限。
  • UI:Search:包含了訪問快速搜索欄及搜索界面所需要的權(quán)限,。
  • Repo:AllRepositories (Read):給予用戶讀取所有倉庫內(nèi)容的權(quán)限,。沒有倉庫的讀權(quán)限用戶將無法在倉庫頁面看到實(shí)際的倉庫內(nèi)容,也無法使用Maven從倉庫下載構(gòu)件,。
  •  Repo:AllRepositories (Full Control):給予用戶完全控制所有倉庫內(nèi)容的權(quán)限,。用戶不僅可以瀏覽、下載構(gòu)件,,還可以部署構(gòu)件及刪除倉庫內(nèi)容,。
     在3.x版本中, Nexus只預(yù)定義了兩個(gè)重要的角色:
  • nx-admin:擁有Nexus所有權(quán)限
  • nx-anonymous:匿名用戶角色,,擁有訪問Nexus界面,,瀏覽倉庫內(nèi)容和搜索構(gòu)件的功能。

Nexus為項(xiàng)目分配獨(dú)立的倉庫:
     當(dāng)我們有多個(gè)項(xiàng)目時(shí),,為了避免各個(gè)項(xiàng)目上傳到同一倉庫發(fā)生沖突干擾,、可以為每個(gè)項(xiàng)目創(chuàng)建獨(dú)立的倉庫、每個(gè)項(xiàng)目所擁有的倉庫只有其項(xiàng)目組成員才能對(duì)此倉庫進(jìn)行部署,、修改和刪除權(quán)限,、其他用戶只能讀取、下載,、和搜索該倉庫內(nèi)容,。
     我們以2.x版本舉例,步驟如下:
  1. 創(chuàng)建項(xiàng)目獨(dú)立倉庫,,例如我們建立一個(gè)發(fā)布版本的Test-Release倉庫
  2. 為倉庫建立權(quán)限,。點(diǎn)擊左側(cè)導(dǎo)航欄的Privileges,,點(diǎn)擊Add按鈕,然后選擇為那個(gè)倉庫建立權(quán)限(Repository),,以及建立什么樣的權(quán)限(Repository Target),。
  3. 創(chuàng)建包含上述權(quán)限的角色。點(diǎn)擊左側(cè)導(dǎo)航欄的Roles,,點(diǎn)擊Add按鈕,,選擇Nexus Role進(jìn)入創(chuàng)建角色界面,為角色添加上第二步創(chuàng)建的一個(gè)或者多個(gè)權(quán)限以及一些基本配置,。
  4. 創(chuàng)建用戶,、指定用戶擁有上面的角色。點(diǎn)擊左側(cè)導(dǎo)航欄的Users,,點(diǎn)擊Add按鈕,,選擇Nexus User進(jìn)入創(chuàng)建用戶界面,為用戶添加上第三步創(chuàng)建的一個(gè)或者多個(gè)角色以及一些基本配置,。

Nexus調(diào)度任務(wù):
     Nexus提供了一系列可配置的調(diào)度任務(wù)來方便用戶管理系統(tǒng),。用戶可以設(shè)定這些任務(wù)運(yùn)行的方式,例如每天,、每周等,。調(diào)度任務(wù)會(huì)在適當(dāng)?shù)臅r(shí)候在后臺(tái)運(yùn)行。
     要建立一個(gè)調(diào)度任務(wù),,單擊左邊導(dǎo)航菜單中的“Scheduled Tasks”,,然后再右邊的界面上單擊Add按鈕,按照頁面上的提示填寫相關(guān)內(nèi)容,。
     Nexus包含了以下幾種類型的調(diào)度任務(wù):
  • Download Indexs:為代理倉庫下載遠(yuǎn)程索引,。
  • Empty Trash:清空Nexus的回收站,一些操作實(shí)際是將文件移到了回收站中,。
  • Evict UnusedProxied Items From Repository Caches:刪除代理倉庫中長(zhǎng)期未被使用的構(gòu)件緩存,。
  • Expire RepositoryCache:Nexus為代理倉庫維護(hù)了遠(yuǎn)程倉庫的信息以避免不必要的網(wǎng)絡(luò)流量,該任務(wù)清空這些信息以強(qiáng)制Nexus去重新獲取遠(yuǎn)程倉庫的信息,。
  • Publish Indexs:將倉庫索引發(fā)布成可供m2eclipse和其他Nexus使用的格式,。
  • Purge NexusTimeline:刪除Nexus的時(shí)間線文件,該文件用于建立系統(tǒng)的RSS源,。
  • Rebuild MavenMetadata Files:基于倉庫內(nèi)容重新創(chuàng)建倉庫元數(shù)據(jù)文件maven-metadata.xml,,同時(shí)重新創(chuàng)建每個(gè)文件的校驗(yàn)和md5與sha1。
  • ReIndex Repositories:為倉庫編纂索引,。
  • Remove SnapshotsFrom Repositories:以可配置的方式刪除倉庫的快照構(gòu)件,。






    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多