我們在JavaWeb開發中必不可少的就是jar包管理-maven
,在沒有maven之前,都是自己手動下載jar包匯入到專案中,非常的繁瑣。
maven出現之後,又迎來新的問題,對於倉庫里人家釋出的都可以參照下載,但是公司自己內部寫的jar包,不想讓外人看到,自己公司來回貼上覆制,非常的繁瑣,版本維護起來也是十分頭疼!
這時Nexus Repository
出現了,現在主流的還是nexus3
,所以今天小編帶大家一起搭建使用一下。當然公司也必須有一個自己的私服,來存放公司的技術沉澱,提高開發效率!
網上教學看了很多,但是基本都是教怎麼上傳到私服,從私服拉取依賴就沒有寫!
本文從上傳到拉去面面俱到,對你有幫助,一鍵三連哈!!
nexus3
是一種特殊的遠端倉庫,一般部署在公司伺服器或者區域網內的倉庫服務,私服代理廣域網上的遠端倉庫,供公司的Maven使用者使用。
當Maven依賴需要依賴的時候,它從私服請求,如果私服上不存在依賴,則從外部的遠端倉庫下載,快取在私服上之後,再為Maven的下載請求提供服務。
我們還可以把一些無法從外部倉庫下載到的構件上傳到私服上。
總的準則:無論私服有沒有,我們本地都是使用私服提供的!
mkdir /mydata/nexus/nexus-data -p
給許可權:
chmod 777 /mydata/nexus/nexus-data/
docker run -d -p 8081:8081 --name nexus -v /mydata/nexus/nexus-data:/nexus-data sonatype/nexus3
我們看到密碼可以在容器內獲取:
預設使用者是,唯一生成的密碼可以在卷內的檔案中找到。有關卷的資訊,請參閱持久資料。
admin admin.password
由於我們掛載了資料檔案,主要在宿主機上檢視即可!
切換到目錄:
cd /mydata/nexus/nexus-data/
檢視密碼:
cat admin.password
密碼:206d5b6b-cc58-403f-af03-e5c8772a803a
ip+埠存取:http://192.168.239.132:8081/
使用者:admin
密碼:掛載目錄下的admin.password檔案內
由於匿名存取有安全性問題,在公司不是還是禁用為好!
我們可以看到有三種型別:
倉庫型別 | 說明 |
---|---|
proxy | 代理到遠端倉庫,預設國外,可以修改為國內阿里雲代理 |
group | 存放:通過 Nexus 獲取的第三方 jar 包 |
hosted | 存放:本團隊其他開發人員部署到 Nexus 的 jar 包 |
還有一些倉庫名稱:
倉庫名稱 | 說明 |
---|---|
maven-central | Nexus 對 Maven 中央倉庫的代理 |
maven-public | Nexus 預設建立,供開發人員下載使用的組倉庫 |
maven-releasse | Nexus 預設建立,供開發人員部署自己 jar 包的宿主倉庫要求 releasse 版本(生產版本) |
maven-snapshots | Nexus 預設建立,供開發人員部署自己 jar 包的宿主倉庫要求 snapshots 版本(測試版本) |
點選maven-central
進入詳情:
把代理地址換為阿里雲的:
https://maven.aliyun.com/repository/public
往下滑到最後點選儲存!
關於很多教學都是新建使用者和倉庫,小編這裡就使用admin和自帶的倉庫了!
一般的小公司夠了,公司有一定規模在新建吧!!
我們開啟原生的settings.xml檔案,把私服的地址和使用者設定上去!
<servers>
<server>
<id>maven-public</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>123456</password>
</server>
</servers>
<profiles>
<profile>
<id>nexus-own</id>
<!-- 遠端倉庫列表 -->
<repositories>
<repository>
<id>maven-public</id>
<name>Nexus Central</name>
<!-- 虛擬的URL形式,指向映象的URL-->
<url>http://192.168.239.132:8081/repository/maven-public/</url>
<layout>default</layout>
<!-- 表示可以從這個倉庫下載releases版本的構件-->
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>maven-snapshots</id>
<name>Nexus Central</name>
<!-- 虛擬的URL形式,指向映象的URL-->
<url>http://192.168.239.132:8081/repository/maven-snapshots/</url>
<layout>default</layout>
<!-- 表示可以從這個倉庫下載snapshot版本的構件 -->
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-public</id>
<name>Nexus Central</name>
<url>http://192.168.239.132:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--需要啟用 <profile>中的ID才生效-->
<activeProfile>nexus-own</activeProfile>
</activeProfiles>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layers>
<enabled>true</enabled>
</layers>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<parameters>true</parameters>
</configuration>
</plugin>
</plugins>
</build>
<!--打包上傳maven私服-->
<distributionManagement>
<repository>
<!--id的名字可以任意取,但是在setting檔案中的屬性<server>的ID與這裡一致-->
<id>maven-releases</id>
<!--指向倉庫型別為host(宿主倉庫)的儲存型別為Release的倉庫-->
<url>http://192.168.239.132:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<url>http://192.168.239.132:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
雙擊deploy,上傳私服!
一共上傳了兩次,都在私服中存在!
我們新建一個springboot專案,然後引入依賴:
要勾選Projects下面的設定,不然無法引入依賴!
新專案可以使用依賴中的註解:
經過半天的測試加編寫,終於完成,對於私服有了更深的認識!
私服是每個公司必須要有的,當然也是我們必須要掌握的,小編整理出來,方便大家學習!
優點前面都說了,這裡就不多說了!
前人種樹後人乘涼嘛,對你有幫助,還請不要吝嗇你的發財小手點點關注哈!
關注小編的微信公眾號,一起交流學習!文章首發看哦!