1.前言
很多小伙伴刚去公司上班时候,公司领导叫你拉代码下来看下项目结构,大多数小伙伴都可能会说:‘拉代码我们会啊,git clone嘛’,然后拉下来,常规操作IDEA打开项目,随便点了一个类进去,发现好多地方爆红。那又有一些小伙伴想到了maven设置里面得仓库地址没设置啊,然后跑去设置了一波,心想这下没问题了。结果一刷新maven,还是到处找不到jar包,到处爆红,这时候就傻眼了,心想 ‘咋回事啊对吧’,然后就开始百度,csdn了。那其实这样得情况很多刚工作的小伙伴都经常遇到,今天我来大概的讲下如果快速的将一个项目跑起来,主要就是讲到如何连接公司的一个私服仓库。
2.什么是私服仓库
概念
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用。当Maven需要下载构件的时候,它从私服请求,如果 私服上不存在该构件,则从外部远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。
我的理解 :就是公司内部用来管理jar的一个仓库,员工下载jar包,会先从私服下载,没有才会去远程仓库下载。
3.如何连接私服仓库
关于如何搭建我就不说了,我们今天的主题是快速的将项目跑起来
前面我们讲到我们将一个项目拉下来了,但是到处爆红,但是细心的小伙伴就会发现我们pom.xml中多了如下的一个配置。
<repositories>
<repository>
<id>activiti-releases</id>
<url>https://artifacts.alfresco.com/nexus/content/repositories/activiti-releases</url>
</repository>
</repositories>
<!-- 上传包到Nexus -->
<distributionManagement>
<!--正式仓库的地址-->
<repository>
<id>release</id>
<url>http://192.162.11.131:8081/nexus/content/repositories/releases/</url>
</repository>
<!--快照仓库的地址-->
<snapshotRepository>
<id>snapshots</id>
<url>http://192.162.11.131:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
那这个配置又是什么意思呢,我们来看第一个配置
<repositories>
<repository>
<id>activiti-releases</id>
<url>https://artifacts.alfresco.com/nexus/content/repositories/activiti-releases</url>
</repository>
</repositories>
-
标签
<repositories>
代表的是在这个标签里面可能存在多个仓库,以<repository>
为单位存在。 -
标签
<id>
是仓库的唯一标识 -
标签
<url>
仓库的地址
这个配置就是告诉我们需要从哪里下载jar包,repositorie 表示下载项目依赖库文件的maven仓库地址。
如果是公司本地仓库,而且需要认证才能访问,需要在本地maven的conf\settings.xml文件中添加如下配置内容
第一步修改server标签里面的类容:
<server>
<id>activiti-releases</id>
<username>admin</username>
<password>admin1234</password>
</server>
值得注意的是这里的账号密码是公司搭建仓库的人才知道,所有小伙伴在刚进公司的时候需要主动问你的上级或者带你的人要。
第二步覆盖我们原来的仓库地址:
可以看出我们之前是直接从阿里云去下载jar包,而我们现在要去公司的私服仓库下载,所以需要覆盖原来的地址。*
代表拦截所有下载jar的请求。
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
接下来我们看第二个配置:
<!-- 上传包到Nexus -->
<distributionManagement>
<!--正式仓库的地址-->
<repository>
<id>release</id>
<url>http://192.162.11.131:8081/nexus/content/repositories/releases/</url>
</repository>
<!--快照仓库的地址-->
<snapshotRepository>
<id>snapshots</id>
<url>http://192.162.11.131:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
- 标签
<distributionManagement >
表示项目打包成库文件后要上传到仓库地址。 - 标签
<repository>
里面的地址表示正式发布仓库的地址。 - 标签
<snapshotRepository>
里面的地址表示快照版本仓库的地址。
如果是公司本地仓库,而且需要认证才能访问,也需要在本地maven的conf\settings.xml文件中添加如下配置内容(< repository >节点下的< id >对应setting.xml文件中的server的id)
<server>
<id>releases</id>
<username>admin</username>
<password>admin1234</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin1234</password>
</server>
4.总结
那其实关于打包上传到maven的私服仓库的步骤以及细节还有很多,今天我们的主要是将项目跑起来,如果在上面的步骤没有出错的情况下,而且每个公司的账号密码可能会修改,而且私服仓库里面还涉及到角色的权限问题。所以大家在刚进公司的时候最好脸皮厚一点,多去问问同事或者组长。那今天的分享就到这里,后期我会更加完善maven这块的知识,大家加油咯。
有啥不对的希望大家指出来啊,三克油。