Maven配置多仓库⽆效的解决
在项⽬中使⽤Maven管理jar包依赖,往往会出现以下状况:
1、国内访问maven默认远程中央镜像特别慢;
2、使⽤阿⾥的镜像替代远程中央镜像;
3、阿⾥云镜像中缺少部分jar包;
keras gpu安装4、同时使⽤私有仓库和公有仓库;
针对以上情况,我们就需要让Maven⽀持多仓库配置。
单独仓库配置
当只配置⼀个仓库时,操作⽐较简单,直接在Maven的l⽂件中进⾏全局配置即可,以阿⾥云的镜像为例:
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
请简述springmvc运行流程<url>maven.aliyun/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
只⽤新增⼀个mirror配置即可。要做到单⼀仓库,设置mirrorOf到*。
mirrorOf中配置的星号,表⽰匹配所有的artifacts,也就是everything使⽤这⾥的代理地址。上⾯的mirrorOf配置了具体的名字,指的是repository的名字。
镜像配置说明:
1、id: 镜像的唯⼀标识;
2、name: 名称描述;
3、url: 地址;
4、mirrorOf: 指定镜像规则,什么情况下从镜像仓库拉取。其中,
*: 匹配所有,所有内容都从镜像拉取;
external:*: 除了本地缓存的所有从镜像仓库拉取;
repo,repo1: repo或者repo1,这⾥的repo指的仓库ID;
*,!repo1: 除了repo1的所有仓库;
多仓库配置
那么针对多仓库的配置是否再多配置⼏个mirror就可以了?如此配置并不会⽣效。
正确的操作是在profiles节点下配置多个profile,⽽且配置之后要激活。
<profiles>
<profile>
<id>boundlessgeo</id>
<repositories>
<repository>
<id>boundlessgeo</id>
<url>repo.boundlessgeo/main/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>c语言中二维数组的定义
<id>aliyun</id>
<repositories>
<repository>
<id>aliyun</id>
<url>maven.aliyun/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profile>
<id>maven-central</id>
<repositories>
<repository>
<id>maven-central</id>
<url>/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
<profiles>
通过配置activeProfiles⼦节点激活:
<activeProfiles>
<activeProfile>boundlessgeo</activeProfile>
<activeProfile>aliyun</activeProfile>
<activeProfile>maven-central</activeProfile>
</activeProfiles>
此时如果是在Idea中使⽤了本地的Maven配置,那么在项⽬的Maven管理中会看到类似如下图中的profile选项。
打包时,勾选所使⽤的profile即可。如果使⽤Maven命令打包执⾏命令格式如下:
mvn -Paliyun ...
1.如果aliyun仓库的id设置为central,则会覆盖maven⾥默认的远程仓库。
2.aliyun的仓库也可以不⽤配置,直接在mirrors标签内配置⼀个镜像仓库,mirrors镜像仓库mirrorOf的值设置为central,则也可以实现覆盖默认的仓库。
项⽬中配置镜像tk域名中文版
在项⽬中添加多个仓库,是通过修改项⽬中的pom⽂件实现的。
思路:在项⽬中pom⽂件的repositories节点(如果没有⼿动添加)下添加多个repository节点,每个repository节点是⼀个仓库。
配置效果如下:
<!-- 特殊maven仓库 -->
<repositories>
<repository>
<id>central-repo1</id>
<name>Maven Repository Switchboard</name>
<url>/maven2/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
这⾥的id就是mirrorOf要使⽤的ID。
在实践的过程中发现单单配置该仓库配置并不会⽣效,需要同时在l中定义⼀个mirrorOf为central-repo1的仓库配置,与该配置的id对照。
mutable是什么意思<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>/maven2/</url>
<mirrorOf>central-repo1</mirrorOf>
</mirror>
值得收藏的国内镜像
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>maven.aliyun/mvn/view</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>ibiblio</id>idea配置artifacts
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>maven.aliyun/mvn/view</url>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>/maven2/</url>
</mirror>
</mirrors>
到此这篇关于Maven配置多仓库⽆效的解决的⽂章就介绍到这了,更多相关Maven配置多仓库内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论