maven nexus私服搭建
訪問nexus3官方鏡像庫,選擇需要的版本下載:Docker Nexus
docker pull sonatype/nexus3:3.49.0
創建數據目錄并賦權
sudo mkdir /nexus-data && sudo chown -R 200 /nexus-data
運行(數據目錄選擇硬盤大的卷進行掛載)
docker run -d -p 8081:8081 --name nexus --restart=always -v /etc/localtime:/etc/localtime:ro -v /nexus-data:/nexus-data sonatype/nexus3:3.49.0
訪問:http://127.0.0.1:8081/
默認管理員登錄賬號密碼:admin/yourpasswd
初始訪問會要求輸入密碼,賬號是admin,密碼在數據目錄下:nexus-data/admin.password,輸入密碼后開始配置,然后會要求輸入新的密碼。接下來的匿名登錄這步根據實際來,方便的情況下允許,需要更新安全則不允許即可。
配置Maven Nexus私服
創建角色
通過設置-->Roles-->Create Roles創建一個開發者角色,賦予的權限如圖所示,如需要其他權限,修改角色權限即可。
默認的管理員和匿名登錄角色保留即可。
?創建用戶
默認會有一個管理員用戶和一個匿名登錄用戶,我們可以根據實際需要添加開發者用戶,對應上面創建的開發者角色。
?
?配置代理倉庫
添加一個阿里的maven2 proxy,直接在repositories列表上點擊創建repository,然后選擇maven2 proxy。
創建成功后,再次進入修改此代理界面,發現URL顯示是我們內網的地址了,也就是我們可以通過http://127.0.0.1:8081/repository/nexus-aliyun/ 這個內網的地址通過maven私服去下載鏡像。?
?阿里maven私服代理地址:http://maven.aliyun.com/nexus/content/groups/public/
?公共倉庫添加代理倉庫
參考下圖,直接將創建好的代理倉庫添加到maven-pulic即可。
setting.xml maven配置文件配置私服?
配置文件參考如下,注意修改localRepository本地倉庫地址。
<?xml version="1.0" encoding="UTF-8"?><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>C:\User\xxx\.m2\repository</localRepository><interactiveMode>true</interactiveMode><offline>false</offline><pluginGroups><pluginGroup>org.mortbay.jetty</pluginGroup><pluginGroup>org.jenkins-ci.tools</pluginGroup><pluginGroup>org.sonatype.plugins</pluginGroup> </pluginGroups><servers><server><id>maven-releases</id><username>yourusername</username><password>yourpasswd</password></server><server> <id>maven-snapshots</id><username>yourusername</username><password>yourpasswd</password></server></servers><mirrors><mirror><id>maven-public</id><name>maven-public</name><mirrorOf>*</mirrorOf><url>http://127.0.0.1:8081/repository/maven-public/</url></mirror></mirrors><profiles><profile><id>nexus</id><activation><activeByDefault>false</activeByDefault><jdk>1.8</jdk></activation><repositories><repository><id>central</id><url>http://127.0.0.1:8081/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories> <pluginRepositories><pluginRepository><id>central</id><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>nexus</activeProfile></activeProfiles></settings>
配置項目pom.xml
配置項目的pom.xml,打包時將jar包上傳到私服
<plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><target>1.8</target><source>1.8</source><encoding>UTF-8</encoding><skip>true</skip></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><version>2.7</version></plugin>
</plugins>
配置distributionManagement
<distributionManagement><repository><id>maven-releases</id><url>http://127.0.0.1:8081/repository/maven-releases/</url></repository><snapshotRepository><id>maven-snapshots</id><url>http://127.0.0.1:8081/repository/maven-snapshots/</url></snapshotRepository></distributionManagement>
修改發布策略
默認情況下,對于release版本的項目是不允許重復發布的,為了方便,我們修改配置,允許重復發布。
發布項目版本到maven nexus私服
執行以下指令即可發布到私服
mvn deploy
?登錄到nexus查看,我們的發布的項目已在私服,這時其他開發人員可以直接從私服更新所需的jar,避免所有開發人員需要所有源碼進行本地安裝。