前言:
目前我们对“maven访问本地仓库”大体比较重视,小伙伴们都需要分析一些“maven访问本地仓库”的相关内容。那么小编也在网络上汇集了一些对于“maven访问本地仓库””的相关资讯,希望我们能喜欢,各位老铁们快快来学习一下吧!简介
一个使用maven制作框架包时,会有一个主项目,然后它有多个子项目框架组成,很少一个工具包一个工程,像springboot,springcloud都是这种结构,主项目用来管理一些依赖包的版本,这对于框架型项目来说是很必要的,而对于业务项目来说,因为目前都是推荐使用微服务的轻量方式,所以不建议用多项目绑定一个大项目的方式,而都是一个服务一个项目。
为什么要用远程仓库(私服)
如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件,这样就加大了中央仓库的负载和浪费了外网的带宽,如果网速慢的话还会影响项目的进程。为团队创建私服,可以让公司的团队共享一套构件,加快了项目搭建的进程。所以我们选择用Nexus创建私服。
部署nexus服务
为了演示,我们采用docker进行快速部署nexus服务,脚本如下
docker run --name nexus -it -d \-p 18181:8081 \-p 18182:8082 \-v `pwd`/data:/nexus-data \-v /etc/localtime:/etc/localtime:ro \--restart unless-stopped \sonatype/nexus3:latest
注意:我们这里映射的data目录需要赋予最大权限,不然访问会报权限错误
sudo chmod 777 data/
启动服务,访问页面第一次进入会让你修改密码
默认密码是在你安装的data目录下
pom.xml配置文件
<repositories> <repository> <id>nexus</id> <name>Nexus Repository</name> <url>;/url> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <releases> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> <id>nexus</id> <url>;/url> </pluginRepository> </pluginRepositories> <!--#将项目打包上传到nexus私服--> <distributionManagement> <!-- 两个ID必须与 setting.xml中的<server><id>nexus-releases</id></server>保持一致--> <repository> <id>nexus-releases</id> <url>;/url> </repository> <snapshotRepository> <id>nexus-snapshot</id> <url>;/url> </snapshotRepository> </distributionManagement>setting.xml中的配置修改
<settings xmlns="; xmlns:xsi="; xsi:schemaLocation=" ;> <pluginGroups> </pluginGroups> <proxies> </proxies> <servers> <server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server> </servers> <mirrors> <mirror> <id>maven-public</id> <name>maven-public</name> <url>;/url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> <profiles> <profile> <id>maven-public</id> <repositories> <repository> <id>nexus-releases</id> <!--正式仓库id--> <!--name随便--> <name>Nexus Release Snapshot Repository</name> <!--地址是nexus中repository(Releases/Snapshots)中对应的地址--> <url>;/url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>nexus-snapshots</id> <url>;/url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> <updatePolicy>always</updatePolicy> </repository> </repositories> <pluginRepositories> <!--插件仓库地址,各节点的含义和上面是一样的--> <pluginRepository> <id>nexus-releases</id> <name>Nexus Release Snapshot Repository</name> <url>;/url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>nexus-snapshots</id> <url>;/url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> <updatePolicy>always</updatePolicy> </pluginRepository> </pluginRepositories> </profile> </profiles> <!--激活配置--> <activeProfiles> <activeProfile>maven-public</activeProfile> <!--profile下的id--> </activeProfiles></settings>测试
我们可以重新刷新导入下jar包依赖,然后去nexus服务器上查看
标签: #maven访问本地仓库