使用Nexus建立私服

原文連接:http://www.cnblogs.com/helong/articles/2254446.htmlhtml

注意:nexus2.6.0版本之後不支持jdk6了,必須jdk1.7或以上。java

參考:http://blog.csdn.net/shandian534/article/details/8987349linux

-------------------------web

更改nexus 端口與訪問路徑不帶nexus

更改 nexus 的端口號,在conf/plexus.properties 裏面。

更改nexus的訪問不用http://127.0.0.1:8081/nexus,而是直接經過http://127.0.0.1:8081 訪問,只須要把webapp-context-path=/nexus 改爲webapp-context-path=/ 就能夠了。

 -------------------------windows

部署環境是windowsxp緩存

首先從 http://nexus.sonatype.rog/downloads 下載最新版的Nexustomcat

咱們能夠根據我的的需求下載。裏面有nexus-webapp-1.9.2.3-bundle.zip等其餘系統運行的壓縮文件 或者war包nexus-webapp-1.9.2.3.war。app

nexus-webapp-1.9.2.3-bundle.zip 包裏面自帶了一個Jetty容器,這樣咱們不用另找容器,能夠直接啓動運行。webapp

Bundle 安裝方式:maven

首頁解壓Bundle文件,這時回獲得兩個子目錄:

nexus-oss-webapp-1.9.2.3 該目錄包含了Nexus 運行所須要的文件,如啓動腳本、依賴jar包等。

sonatype-work   該目錄包含Nexus生成的配置、日誌文件、倉庫文件等。其中,第一個目錄是運行Nexus所必須的,並且全部相同版本Nexus實力所包含的該目錄內容都是同樣的。而第二個目錄不是必須的,Nexus會在運行的時候動態建立該目錄,不過他的內容對於各個Nexus實例不同的,由於不一樣用戶在不一樣機器上使用的Nexus會有不一樣的配置和倉庫內容。當用戶須要本分Nexus的時候,默認備份sonatype-work/目錄,由於該目錄包含了用戶特定的內容,而nexus-webapp1.9.2.3目錄下的內容是能夠從安裝包直接獲取的。

若是要啓動nexus須要在nexus-oss-webapp-1.9.2.3\bin\jsw\ 下面選擇對應的系統版本,個人環境是:windows-x86-32,因此選擇這個目錄這個目錄裏面有一些腳本以下:
Installnexus.bat 將Nexus安裝成windows服務

Uninstallnexus.bat 卸載Nexus Windows服務

Startnexus.bat 啓動Nexus Windows 服務

Stopnexus.bat 中止Nexus windos 服務

Pausenexus.bat 暫停Nexus windows 服務

Resumenexus.bat 恢復暫停的 Nexus Windos服務

若是不想每次啓動都使用這些腳本,我能夠能夠配置成widnwos服務,能夠開機自動啓動

 

在Linux 系統上啓動Nexus也很是方便,例如Unbuntu 32 位系統,那麼只須要進入到nexus-oss-webapp-1.9.2.3\bin\jsw\linux-x86-32 而後運行以下的命令:

$./nexus console

這時能夠看到啓動的命令行輸出,可使用Ctril+c中止Nexus

除了console以外,nexus的linux腳本還提供了以下命令:

./nexus start: 在後臺啓動Nexus服務

./nexus stop: 中止後臺的Nexus服務

./nexus status : 查看後臺Nexus服務狀態

./nexus restart: 從新啓動後臺的Nexus服務

 

Nexus Bundle 默認使用的端口號是:8081,若是啓動服務能夠訪問:

http://localhost:8081/nexus

啓動Bundle時可能會出現端口衝突,或者想跟換端口時能夠的打開:nexus-oss-webapp-1.9.2.3\conf\plexus.properties 文件裏面找到屬性:application-port 按本身的須要改爲相應的端口 個人改爲4040

這時在訪問的時候地址應該是這樣的:http://localhost:4040/nexus

WAR的方式安裝Nexus

該war包支持主流的web容器,如tomcat 、Classfish、Jetty和Resin

好比tomcat ,把下載好的war放在webapps目錄下 而後運行tomcat就好了,具體看看tomcat資料

 

登陸Nexus

Nexus默認管理員用戶名和密碼爲:admin/admin123

Nexus 內置倉庫介紹

Maven Gentral:該殘酷代理Maven中央倉庫,其策略爲Release,所以只會下載和緩存中央倉庫中的發佈版本構件。

Release:這是一個策略爲Release的宿主類型倉庫,用來部署組織內部的發佈版本構件。

Snapshots:這是一個策略爲Snapshot的宿主類型倉庫,用來部署組織內部的快照版本構件。

3rd party:這是一個策略爲Release的宿主類型倉庫,用來部署沒法從公共倉庫得到的第三方發佈版本構件。

Apache Snapshots: 這是一個策略爲Snapshot的代理倉庫,用來代理Apache Maven倉庫的快照版本構件。

Codehaus Snapshots: 這是一個策略爲Snapshot的代理倉庫,用來代理Codehaus Maven倉庫的快照版本構件。

Google code: 這是一個策略爲Release的代理倉庫,用來代理Google Code Maven倉庫發佈版本構件。

java.net Maven2:這是一個策略爲Release的代理倉庫,用來代理java.net Maven倉庫的發佈版本構件

Public Repositories:該倉庫組將上述全部策略爲Release的倉庫聚合並經過一致的地址提供服務

Public Snapshot Repositories: 該倉庫組將上述全部的策略爲Snapshot的倉庫聚合並經過一致的地址提供服務。(在nexus-oss-webapp-1.9.2.3 這版本中沒有此項)

Nexus倉庫分類概念

Maven能夠直接從宿主倉庫下載構件;maven也能夠從代理倉庫下載構件,而代理倉庫會間接地從遠程倉庫下載並緩存構件;最後,爲了方便,Maven能夠從倉庫組下載構件,而倉庫組沒有實際內容,它會轉向其包含的宿主倉庫或者代理倉庫得到市級構件的內容。

建立Nexus宿主倉庫

建立一個宿主倉庫首先單擊界面左邊導航欄中的Repositories連接,在右邊的面板中,選擇add,接着在下拉菜單中選擇Hosted Repository,就會看到以下圖的配置界面:

填寫倉庫ID Repostory ID  和倉庫名稱 Repository Name 以及倉庫類型Respository Type  倉庫的格式 Provider 選擇默認的Maven2 Repository,而後是Repository Policy 讀者能夠根據本身的須要來配置該倉庫是發佈版本構件倉庫仍是快照版本構件倉庫。Defualt Local Storage Location 表示該倉庫的沒哦人存儲目錄,圖中該字段的值爲空,待倉庫建立好以後,該值就會成爲基於sonatype-work的一個文件路徑,如:E:\nexus-oss-webapp-1.9.2.3-bundle\sonatype-work\nexus\storage

默認的地址倉庫存儲目錄地址。

Access Setting 小組中

  Deployment Policy用來配置該倉庫的部署策略,選項有隻讀(禁止部署)、關閉從新部署(同一構件只能部署一次)以及容許從新部署。

  Allow file Browsing 表示是否容許瀏覽倉庫內容

  Include in Search 表示是否對該倉庫進行索引並提供搜索

  Publish URL 用來控制是否經過URL提供服務,若是選擇false當訪問倉庫的地址時,會獲得HTTP404 Not Found 錯誤

  Not Found Cache TTL 表示當一個文件沒有找到後,緩存這一不存在的信息的時間。以默認值1440分鐘爲例,若是某文件不存在,那麼在以後的1440分鐘內,若是Nexus再次獲得該文件的請求,它將直接返回不存在的信息,而不會查找位呢間系統。

 

建立Nexus代理倉庫

 

操做和建立宿主倉庫相似,主要Repository Type 的值改成proxy 這時看到以下圖:

對於代理倉庫來講,最重要的是遠程倉庫地址即

Remote Storage Location,用戶必須輸入有效的值

Download Remote Indexes 表示是否下載遠程倉庫的索引

Checksum Policy 配置校驗出錯時的策略,用戶能夠選擇忽略、記錄警告信息或者拒絕下載。

Authentication 當遠程倉庫須要認證的時候這裏的時候,這裏的Authentication 配置就能派上用處。

Artifact Max Age 構件緩存最長的時間,對於快照版原本說 Artifact Max Age 默認值爲 -1,表示構件混存後就一直保存着,不在從新下載,對於快照版來講默認值爲1440分鐘表示每隔

Metadata Max Age 倉庫元數據文件緩存的最長時間

Http Request Setting 和 Override HTTP proxy Setting 其中前者用來配置Nexus訪問遠程倉庫時HTTP請求參數,後者用來配置HTTP代理

建立Nexus倉庫組   

建立倉庫組同其餘的同樣步驟是在選擇add時選擇下拉框中的Repository Group 就會看到以下的:

配置中的信息同其餘的同樣,倉庫組中沒有Release 和Snapshot ,這不一樣於宿主倉庫和代理倉庫。在配置界面中能夠選擇Nexus中的倉庫,將其聚合成一個虛擬的倉庫組,注意,倉庫組所包含的倉庫的順序決定了倉庫組便利其所含倉庫的次序,所以最好將經常使用的倉庫放在前面,當用戶從倉庫組下載構件的時候,就能經快的訪問到包含構件的倉庫。

Nexus的索引與構件搜索

須要搜索Maven 中央庫,首先須要設置Nexus中的Maven Central 代理倉庫下載遠程索引 以下圖:

Download Remote Indexes 屬性設置爲true 默認爲false

true是開啓,false是關閉 因爲中央倉庫內容比較多,所以其索引文件比較大,須要查看下載如何了,咱們能夠單擊界面左邊導航欄中的 Scheduled Tasks 連接後,就能夠看到系統調度的任務其狀態爲 runing,在說哦因下載完畢以後,該任務就會消失。

Scheduled Tasks 界面:

配置Maven 從Nexus下載構件

當須要爲項目添加Nexus私服上的public倉庫時,能夠在項目pom.xml文件配置  代碼以下:

複製代碼
<project>

<repositories>
<repository>
<id>nexus</id>
<url>http://http://localhost:4040/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<url>http://localhost:4040/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>

</project>
複製代碼

這樣的配置只對當前的Maven項目有效,實際應用中,咱們每每想要經過一次配置就完成能讓本機全部的Maven項目都使用本身的Maven私服。這時配置本地倉庫setting.xml 代碼以下:

複製代碼
<settings>
  
   <mirrors>

<mirror>
<id>central</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:4040/content/groups/public/</url>
</mirror>
</mirrors>  

<profiles>
     <profile>
<id>JDK1.6</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.6</jdk>
</activation>
<properties>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
<maven.compiler.compilerVersion>1.6</maven.compiler.compilerVersion>
</properties>
</profile>
<profile>
<id>central</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>central</activeProfile>
<activeProfile>JDK1.6</activeProfile>
</activeProfiles>
</settings>
複製代碼


使用Maven 部署構件至Nexus

平常開發生成的快照版本構件能夠直接部署到Nexus中策略爲Snapshot的宿主倉庫中,項目正式發佈的構件則應該部署到Nexus中策略爲Release的宿主倉庫中。POM.XML配置以下:

複製代碼
<project>
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Releases Repository</name>
<url>http://localhost:4040/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshots Repository</name>
<url>http://localhost:4040/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>
複製代碼


Nexus 的倉庫對於黎明用戶是隻讀的爲了可以部署構件,還須要在setting.xml 中配置認證信息代碼以下:

複製代碼
<servers>

<server>
<id>releases</id>
<username>admin</username>
<password>iapppay</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>iapppay</password>
</server>
</servers>
複製代碼
相關文章
相關標籤/搜索