网上有很多关于maven配置本地私服和镜像的过程,初学者总是很难理解真正的原理,
\t我用这篇文章结束了他们;
maven安装文件setting.xml的结构
\tinteractiveMode: 默认情况下是否与用户开启交互模式 true
\toffline: 默认为离线模式 false
\tlocalRepository: 默认配置本地存储库的位置${user.home}/.m2/repository
\tproxies: 代理配置
\tprofiles: 配置环境
\tactiveProfiles: 配置默认激活环境
\tpluginGroups: 比如<pluginGrouporg.eclipse.jetty</pluginGroup, 默认有org.apache.maven.plugins and org.codehaus.mojo。
\tservers: 配置私服的用户名和密码
\tmirrors: mirror相当于拦截器,它会拦截maven对remote repository相关请求,请求中的相关请求remote repository地址,重定向到mirror配置在里面的地址。
\t配置镜像
\t因为中央仓库在国外,下载比较慢,所以可以配置为定向到阿里云镜像,阿里云镜像里面一般都很全
\t<mirror <idNexus-aliyun</id <mirrorOfcentral</mirrorOf <nameNexus aliyun</name <urlhttps://maven.aliyun.com/repository/central</url </mirror
\t这样,当访问中央仓库时,它将被定位为阿里云,而不是中央仓库。如果没有阿里云仓库呢?我该怎么办?这通常不会发生,因为阿里云仓库jar很全
\t如果你想在阿里云镜像找不到资源时访问中央仓库,那么阿里云镜像就不能使用<mirrorOfcentral</mirrorOf,阿里云镜像可以配置成私服,
\t如<mirrorOfaliyun</mirrorOf
\t关于mirrorOf,假如有同名mirrorOf,然后只匹配第一个,
\t如果有<mirrorOf*</mirrorOf,名称完全相同完全相同,然后匹配通配符
\t配置profile
\t<profile\t\t\t\t<idnexus-mr</id\t\t\t\t<repositories\t\t\t<!– 配置的顺序决定了下载 jar 包的顺序 –\t\t\t<!– maven下载时,按顺序搜索,优先nexus,找不到再找central –\t\t\t\t\t\t<!– 这里nexus我的私服地址 –\t\t\t<repository\t\t\t\t <idnexus</id\t\t\t\t<urlhttp://172.16.8.6:8082/repository/maven-public/</url\t\t\t\t<releases<enabledtrue</enabled</releases\t\t\t\t<snapshots<enabledtrue</enabled</snapshots\t\t\t</repository\t\t\t\t\t\t<!– 这里可以省略中央仓库 –\t\t\t<repository\t\t\t\t <idcentral</id\t\t\t\t<urlhttps://maven.aliyun.com/repository/central</url\t\t\t\t<releases<enabledtrue</enabled</releases\t\t\t\t<snapshots<enabledtrue</enabled</snapshots\t\t\t</repository\t\t\t\t</repositories\t\t<pluginRepositories\t\t\t<pluginRepository \t\t\t\t<idnexus</id\t\t\t\t <urlhttp://172.16.8.6:8082/repository/maven-public/</url\t\t\t\t <releases<enabledtrue</enabled</releases\t\t\t\t<snapshots<enabledtrue</enabled</snapshots\t\t\t</pluginRepository\t\t\t\t\t\t<pluginRepository \t\t\t\t<idcentral</id\t\t\t\t <urlhttps://maven.aliyun.com/repository/central</url\t\t\t\t <releases<enabledtrue</enabled</releases\t\t\t\t<snapshots<enabledtrue</enabled</snapshots\t\t\t</pluginRepository\t\t\t\t\t\t\t\t</pluginRepositories\t\t\t\t\t</profile
\t配置activeProfiles
\t激活前面的环境配置
\t<activeProfiles\t\t<activeProfilenexus-mr</activeProfile\t</activeProfiles
\t完整的setting.xml配置如下:
\t注:虽然在本文中mirrorOf和profile中central都是同时配置的,不需要都可以配置。两者都有配置。
\t如果你想把私服nexus也配置成mirrorOf也可以,但mirrorOf不可配置为*,否则,所有的请求都离开nexus了,不会走central
\t测试一下阿里云镜像是否已经离开。
\t在项目中增加一个新的pom
\t<dependency\t\t<groupIdorg.springframework.cloud</groupId\t\t<artifactIdspring-cloud-starter-alibaba-sentinel</artifactId\t\t<version0.2.1.RELEASE</version\t</dependency
\t更新maven,本地下载m2e-lastUpdated.properties查看文件中的下载信息,
内容为
\tnexus|http\\://172.16.8.6\\:8082/repository/maven-public/|sources=1628230775917
\tNexus-aliyun|https\\://maven.aliyun.com/repository/central|sources=1628230775917
\t证明maven172.16.8.6(nexus)、 maven.aliyun.com(阿里云镜像)
\t我们将以上mirrorOf和profile中的central注释相应的配置,删除本地配置jar,项目再次更新maven,内容变成:
\tnexus|http\\://172.16.8.6\\:8082/repository/maven-public/|javadoc=1628217742198
\tnexus|http\\://172.16.8.6\\:8082/repository/maven-public/|sources=1628217716685
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至827202335@qq.com 举报,一经查实,本站将立刻删除。文章链接:https://www.eztwang.com/n/wdjy/6650.html