springboot之maven私服搭建和使用

爲什麼要用遠程倉庫(私服)

如果沒有私服,我們所需的所有構件都需要通過maven的中央倉庫和第三方的maven倉庫下載到本地,而一個團隊中的所有人都重複的從maven倉庫下載構件,這樣就加大了中央倉庫的負載和浪費了外網的帶寬,如果網速慢的話還會影響項目的進程。爲團隊創建私服,可以讓公司的團隊共享一套構件,加快了項目搭建的進程。所以我們選擇用Nexus創建私服。

Nexus下載

下載地址:http://www.sonatype.org/nexus/go

Nexus安裝

(1)解壓

         $ tar zxvf nexus-2.1.2-bundle.tar.gz

(2)移動到其他目錄

         $ mv nexus-2.1.2 /home/nexus

(3)進入nexus的bin目錄下

         $ cd /home/nexus/bin

(4)執行命令啓動服務

         $  ./nexusstart

(5)執行命令停止服務

          $  ./nexusstop

 

Nexus瀏覽

啓動服務之後,瀏覽器中輸入:http://127.0.0.1:8081/nexus/,默認用戶名和密碼是admin和admin123.出現如圖所示運行成功:

 

Nexus倉庫類型介紹

nexus的倉庫類型分爲以下四種:

        group:倉庫組,用了合併多個hosted/proxy倉庫,當你的項目希望多個repository使用資源時就不需要多次引用了,只需要引用一個group即可。

        hosted:宿主,本地倉庫,通常我們會部署自己的構建到這一類倉庫。

        proxy:代理倉庫,通常被用來代理遠程的公共倉庫,如maven中央倉庫。

        virtual:虛擬

 

主要介紹一下三個本地倉庫:

         Releases:用來部署管理內部的發佈版本構件的宿主類型倉庫,這裏存放我們自己項目中發佈的構建,通常是Release版本的, 比如我們自己做了一個FTP Server的項目, 生成的構件爲ftpserver.war,我們就可以把這個構建發佈到Nexus的Releases本地倉庫。

         Snapshots:用來部署管理內部的快照版本構件的宿主類型倉庫,它的目的是讓我們可以發佈那些非release版本, 非穩定版本,比如我們在trunk下開發一個項目,在正式release之前你可能需要臨時發佈一個版本給你的同伴使用, 因爲你的同伴正在依賴你的模塊開發,那麼這個時候我們就可以發佈Snapshot版本到這個倉庫, 你的同伴就可以通過簡單的命令來獲取和使用這個臨時版本。

         3rd Party:無法從公共倉庫獲得的第三方發佈版本的構件倉庫,比如有些構件在中央倉庫是不存在的.比如你在中央倉庫找不到Oracle 的JDBC驅動, 這個時候我們就需要自己添加到3rdparty倉庫。

 

下載索引

nexus索引好比目錄,只要我們更新好索引,就可以在nexus系統中去查找,下載我們需要的jar包,並且對應的groupId,artifactId,version都可以方便的查到。如圖:

 

剛剛搭建的nexus,索引會是空的,所以需要我們去下載索引。

下載索引有兩種方式

第一種:在線下載索引。把Centra倉庫,點擊倉庫下面的configuration下把DownloadRemote Indexes修改爲true。如下圖:

 

然後在Central倉庫上右擊,選擇Pepari Index,這樣Nexus就會去下載索引文件。

第二種:離線下載索引。

由於索引文件很大,在線下載會很漫長,所以採用離線下載會很快。從網上找到一個nexus索引倉庫包下載下來,如圖:

下載完成以後解壓,把文件夾中的東西拷貝到sonatype-work/nexus/indexer/central-ctx下面:

 

重新啓動一下nexus。

能夠很快的把索引下載過來。如圖:

如果中間添加了新的jar包想更新索引,點中右擊update index就行了。如圖:

 

項目中配置Nexus倉庫

mavensetting.xml文件配置

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 
<!--存放本地倉庫的地方-->
  <localRepository>D:/Java/maven/repository</localRepository>
 
	<!--私服的驗證信息-->
	<servers>
		<server>
			<id>releases</id>
			<username>admin</username>
			<password>admin123</password>
		</server>
		<server>
			<id>snapshots</id>
			<username>admin</username>
			<password>admin123</password>
		</server>
	</servers>
 
	<!--maven對全部倉庫的訪問全部攔截到私服的public倉庫中去,如果私服關閉,那麼久不能訪問中央工廠了-->
	<mirrors>
		<mirror>
			<id>nexus</id>
			<mirrorOf>*</mirrorOf>
			<name>Local Repository</name>
			  <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
		</mirror>
	</mirrors> 
	<!--配置倉庫的一些信息,其主要作用是用來覆寫central中央倉庫的一些配置信息-->
	<profiles>
		<profile>
			<id>central</id>
			<repositories>
				<repository>
					<id>central</id>
					<name>Central</name>
					<!-- 該 url 沒有意義,可以隨便寫,但必須有。 -->
					<url>http://*</url>
					<releases><enabled>true</enabled></releases>
					<snapshots><enabled>true</enabled></snapshots>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>central</id>
					<name>local private nexus</name>
	<url>http://127.0.0.1:8081/nexus/content/groups/public</url>
					<releases><enabled>true</enabled></releases>
					<snapshots><enabled>true</enabled></snapshots>
				</pluginRepository>
			</pluginRepositories>
		</profile>
	</profiles>
 
	<!--激活上面配置的倉庫信息-->
	<activeProfiles>
		<activeProfile>central</activeProfile>
	</activeProfiles>
 
</settings>

項目中pom.xml配置

<!-- 項目部署到私服配置 -->
<distributionManagement> <!-- 遠程部署管理信息 -->
	<repository> <!--部署項目產生的構件到遠程倉庫需要的信息 -->
		<id>releases</id>
		<name>Nexus Release Repository</name>
	<url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
	</repository>
 
	<snapshotRepository> <!-- 如果沒有配置該元素,默認部署到repository元素配置的倉庫 -->
		<id>snapshots</id>
		<name>Nexus Snapshot Repository</name>
		<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
	</snapshotRepository>
</distributionManagement>

配置好以後,就可以通過maven的deploy命令,將項目的jar包部署到Nexus上,供其他項目組模塊使用。大大加快了項目組的開發效率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章