举个栗子
#Thu Jan 24 11:42:29 CST 2019
logback-parent-1.1.1.pom>nexus-aliyun=
logback-parent-1.1.1.pom>nexus-xx=
logback-parent-1.1.1.pom>mirror-all=
这里的nexus-aliyun表示setting.xml中配置的私服id
其中
这个文件存储的是每次从私服或者中央仓库下载的jar包的信息。
该logback-parent只有pom管理,所以没有jar
第3行:表示该pom第一次从nexus-aliyun(阿里云镜像)来的
第4行:表示更换远程仓库nexus-xx(xx私服)且该私服存在该pom,那么就将该私服地址写入到_remote.repositories.
第5行:表示镜像服务器mirror-all存在该pom
只有存在该资源的镜像或私服才会将私服或镜像的id写入到_remote.repositories中
参考资料:https://www.cnblogs.com/mySummer/p/9453777.html
假设我们更换了私服地址为nexus-abc,并且该私服不存在该资源,那么就会生成logback-parent-1.1.1.pom.lastUpdated文件;
也就是说,_remote.repositories文件,标示该资源的来源,如果你有这个_remote.repositories,那就会在访问本地的同时,必须确保远程上有才行(这里的远程是setting文件中配置的镜像或远程仓库,用id来进行关联,详情见标题2._remote…),否则就会报错;
参考资料:https://blog.csdn.net/zzb5682119/article/details/89217780
错误信息大体如下:
Could not resolve dependencies for project com-hallo-mybatis:generator:jar:1.0-SNAPSHOT:
The following artifacts could not be resolved: com.tencent.tsf:spring-cloud-tsf-dependencies:pom:1.1.1-
RELEASE, com.tencent.tsf:spring-cloud-tsf-sleuth:jar:1.1.1-RELEASE, com.tencent.tsf:spring-cloud-tsf-
auth:jar:1.1.1-RELEASE: Failure to find com.tencent.tsf:spring-cloud-tsf-dependencies:pom:1.1.1-RELEASE in
http://***:8081/repository/public/ was cached in the local repository, resolution
will not be reattempted until the update interval of public has elapsed or updates are forced
2._remote.*和setting文件的py关系
*
mirror-all
http://mirrors.cloud.tencent.com/nexus/repository/maven-public/
custom
central
http://repo1.maven.org/maven2
true
true
_remote.repositories中>符号后的字符为setting文件中配置的标签下的id,也就是镜像服务器的id(自己定义),
也可以是标签下的id,表示远程仓库的id(自己定义);具体看本地仓库的构件是从哪里下载的;
3.maven setting配置文件 tips ★
3.1 setting不配置镜像或仓库时,会自动请求apache的maven仓库
3.2标签解读
本地仓库的路径
windows用户请注意,默认是在C盘
第三方插件的groupId(不常用)
例如:以下为springBoot的地址,但是为什么在idea中却不用指定该groupId也可以使用,
是因为boot的maven中指定了spring-boot 命令前缀
org.springframework.boot
给maven配置代理(不常用)
myproxy
true
http
proxy.somewhere.com
8080
proxyuser
somepassword
*.google.com|ibiblio.org
远程仓库的配置文件(deploy构件时常用,需要配置私服的账号及密码)
server001
my_login
my_password
${usr.home}/.ssh/id_dsa
some_passphrase
664
775
镜像服务器地址(常用,一般配置aliyun镜像)
可以配置多个镜像
alimaven
def
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
...
仓库配置(常用,id与标签mirrorOf和_remote.repositories有关,repositories标签常配置在下)
codehausSnapshots
Codehaus Snapshots
false
always
warn
http://snapshots.maven.codehaus.org/maven2
default
\
配置不同的profiles,使setting.xml配置和pom.xml进行联动
(在idea mavenProjects边栏中的profiles会出现这里设置的profiles的id,如下面的test,当被选中时它的值会覆盖任何其它定义在POM中或者profile.xml中的带有相同id的profile,通常配置在标签下)
test
使配置的profiles手动生效(注意,如果这里不启用某一个profile的话,profile下的repositories将不会生效,默认仓库还是apache的默认仓库;另:这里设置的activeProfile会与pom.xml设置的profile产生联动,相同的id会被激活)
nexus
qcloud-repo
prd
env-test
test
pom.xml配置构件发布
使用
配置发布的私服地址及id
例:
*pom.xml*
nexus-server@public
http://ip:8081/repository/maven-releases
nexus-server@public-snapshots
http://ip:8081/repository/maven-snapshots
*setting.xml*
nexus-server@public
admin
admin
nexus-server@public-snapshots
admin
admin
更多关于标签的知识详见https://www.cnblogs.com/yangxia-test/p/4409736.html
本文只是对maven使用过程中的一点记录
耳鸣了一天,脑袋瓜子嗡嗡的