針對公司內網私服倉庫,私服倉庫不能訪問外網,此時無法在私服倉庫代理阿里的maven倉庫。我們的maven就需要配置多個倉庫:
maven目錄下的conf/settings.xml配置文件:
一、在profiles標簽內新建profile,配置一個公司的倉庫和阿里的倉庫;
<profile>
<id>nexus</id> <repositories>
<!-- 私服發布倉庫,即私服正式jar倉庫 --> <repository> <id>maven-releases</id> <url>http://192.168.0.54:8899/ajco/repository/maven-releases/</url> </repository>
<!-- 私服快照倉庫,即私服臨時jar倉庫 --> <repository> <id>maven-snapshots</id> <url>http://192.168.0.54:8899/ajco/repository/maven-snapshots/</url> </repository> </repositories>
<!-- 私服插件倉庫,一般插件都是從外網倉庫下載,可以不用配置 --> <pluginRepositories> <pluginRepository> <id>maven-releases</id> <url>http://192.168.0.54:8899/ajco/repository/maven-releases/</url> </pluginRepository> <pluginRepository> <id>maven-snapshots</id> <url>http://192.168.0.54:8899/ajco/repository/maven-snapshots/</url> </pluginRepository> </pluginRepositories> </profile> <profile>
<id>aliyun</id> <repositories>
<!-- 外網倉庫,用國內阿里倉庫 --> <repository> <id>central</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </pluginRepository> </pluginRepositories> </profile>
二、在activeProfiles標簽內配置activeProfile,激活上面的倉庫,activeProfile里的值對應上面profile里的id值
<activeProfile>nexus</activeProfile> <activeProfile>aliyun</activeProfile>
說明:
1.maven有個默認的外網中央倉庫,id是central。在mirrors標簽內配置一個mirrorOf=central的鏡像,則使用這個鏡像地址替換這個外網中央倉庫;
2.profiles標簽里的aliyun的倉庫也可以不用配置,直接在mirrors標簽內配置一個鏡像倉庫,mirrors鏡像倉庫mirrorOf的值設置為central,則也可以實現覆蓋默認的倉庫
<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
配置maven deploy:
如果需要將本地項目deploy打包上傳到私服倉庫,則需要配置如下信息:
一、在settings.xml的servers標簽內新建server標簽,定義一個登錄私服的賬號密碼配置;
<server> <id>deploymentRepo</id> <username>repouser</username> <password>repopwd</password> </server>
二、項目的pom.xml文件加入如下配置,id對應上面的server里的id,表示deploy時上傳到下面的倉庫,用上面的賬號密碼;
說明:本地項目version如果以-snapshots結尾,maven則自動選擇上傳到snapshotRepository倉庫,即配置的快照倉庫,否則上傳到發布倉庫。
<distributionManagement> <repository> <id>deploymentRepo</id> <url>http://192.168.0.54:8899/ajco/repository/maven-releases/</url> </repository> <snapshotRepository> <id>deploymentRepo</id> <url>http://192.168.0.54:8899/ajco/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>