來源於 https://www.cnblogs.com/ruanjianlaowang/p/11182603.html
1. 問題描述
公司內網搭建的有maven私有服務器,但是碰到好幾次只有gav沒有jar的情況或者最新版本更新不及時,所以需要公司服務器和遠程倉庫(阿里雲)相結合來滿足項目需求。
2. 解決方案:
maven倉庫配置主要兩種方式,一種是全局的;一種是配置在項目中,局部的。
2.1 方式一,全局配置
直接更改repo中的setting,目前項目中正在使用(隱藏替換了公司服務器地址)。
直接上代碼
<?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>E:\Develop\maven_repo</localRepository> --> <localRepository>E:\m2\repository</localRepository> <servers> <server> <id>releases</id> <username>admin</username> <password>admin@123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>admin@123</password> </server> </servers> <profiles> <profile> <id>nexus</id> <repositories> <repository> <id>central</id> <url>http://dev.hbusy.com/maven/content/repositories/public</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/clouderarepos/</url> </repository> <!--新增阿里雲--> <repository> <id>aliyun</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http://dev.hbusy.com/maven/content/repositories/public</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </pluginRepository> <pluginRepository> <id>aliyun</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles> </settings>
配置解析:
Maven 依賴搜索順序:本地倉庫->中央倉庫->遠程倉庫。
1.本地倉庫指定
<localRepository>E:\m2\repository</localRepository>
2. 國內一般直接用遠程倉庫(阿里雲)
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
3. 多倉庫配置
- 配置多個repository
<repositories> <repository> <id>aliyun</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </repository> </repositories>
- 在pluginRepository中配置下對應的repository即可
</pluginRepository> <pluginRepository> <id>aliyun</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </pluginRepository>
2.2 方式二,項目中局部配置
<project> <repositories> <repository> <id>central</id> <url>http://dev.hbusy.com/maven/content/repositories/public</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> <!--新增阿里雲--> <repository> <id>aliyun</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </repository> </repositories> </project>
實際開發過程中,一般使用全局配置(在repo中配置setting),除非有些新老項目共存的情況,jar包存在沖突,會單獨在項目中配置下。