前言
现在我们已经知道了maven的基本功能:可以自动下载jar包
并且我们也知道了
- 本地仓库
- 私服仓库(例如:阿里私服)
- 中央仓库(www.mvnrepository.com)
如果大家不能理解,可以看这个理解理解
那么今天就是交大家如何自己搭建一个私服
如图
成功后就差不多像这样
nexus的配置
nexus的下载
下载的话,看大家选择而定。
nexus2.x下载路径:https://help.sonatype.com/repomanager2/download/download-archives—repository-manager-oss
nexus3.x下载路径:http://www.sonatype.org/nexus/go
在这里说一下,因为不知道是什么原因,我的电脑下3.x的会有闪退的情况,所以今天就用的是2.x的来演示。
nexus的打开
其实就点击选择自己的版本
因为我的是window10(64),所以打开就行
然后,选中install-nexus.bat,然它成为window服务
如果不行的话,试试用管理员的身份打开
然后就可以在服务那看到:
这就可以开始登陆:http://localhost:8081/nexus这个,
进去了就代表成功了
nexus代理库的创建
点击右上角 Log In,使用用户名:admin ,密码:admin123 登录,可使用更多功能
点击左侧 Repositories 链接,查看 Nexus 内置的仓库
Nexus 的仓库分为这么几类:
- hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件;
- proxy 代理仓库:代理公共的远程仓库;
- virtual 虚拟仓库:用于适配 Maven 1;
- group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库。
以 Sonatype 为例,添加一个代理仓库,用于代理 Sonatype 的公共远程仓库。点击菜单 Add - Proxy Repository
填写Repository ID - sonatype;Repository Name - Sonatype Repository;
Remote Storage Location - http://repository.sonatype.org/content/groups/public/ ,save 保存:
将添加的 Sonatype 代理仓库加入 Public Repositories 仓库组。选中 Public Repositories,在 Configuration 选项卡中,将 Sonatype Repository 从右侧 Available Repositories 移到左侧 Ordered Group Repositories,save 保存
至于搜索控件,看到configuration,
将download Remote Indexes 选为true;
点击sava
maven的nexus使用
局域网使用
找到maven的配置文件,即:apache-maven-3.1.1/conf 下的settings.xml
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>nexus</id>
<mirrorOf>central</mirrorOf>
<name>internal nexus repository</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>这一段配置,描述的便是 上一步中提到的那个Public Reposiories的信息,这个地址便是他的地址,这些写都可以再界面上看到
</mirror>这里的是localhost是在本机搭建测试用的,如果是公司内部的仓库的话,可自行修改成公司内网ip地址。
</mirrors>
外网访问
- 将项目上传到 Github、码云或者类似的管理平台中,通过jitpack发布(最简单的方式)
- 将项目发布到jcenter或者mavenCentral中,这个比第一种复杂一些,如果要使用jcenter发布,可以使用bintray-release插件
- 将Nexus部署到阿里云或者其他云服务器中,这时使用的版本不再是Windows版而是Unix版
- 以上都是常用的方法,因为时间关系就不再详细介绍了,大家可以自行百度。最后介绍一种取巧的方法,就是找一些可以将内网IP映射到外网访问的小工具,比如nat123、花生壳之类的,这里用的是windows_386,一共就三个文件
其中a.bat是运行文件,里面就一行代码如下:
ngrok -config=ngrok.cfg -subdomain my 8080
其中my为域名的前缀,8080为端口号,这两样是可以根据需要,自行修改的。双击a.bat文件开始运行程序,结果如下:
ngrok
Tunnel Status online
Version 1.7/1.7
Forwarding http://my.tunnel.qydev.com -> 127.0.0.1:8080
Forwarding https://my.tunnel.qydev.com -> 127.0.0.1:8080
Web Interface 127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
当 Tunnel Status为online时,代表已经将内网IP映射到公网上,映射的IP为127.0.0.1(不可变),端口号为你在a.bat中配置的端口号,此处为8080(可配置)。与IP绑定的域名为my.tunnel.qydev.com,其中前缀my即为你在a.bat中配置的前缀。这样你在浏览器中输入my.tunnel.qydev.com就可以连上本机的127.0.0.1:8080。然后,将nexus的IP和端口号分别配置为127.0.0.1和8080就可以在外网访问到本机上的Nexus了。这种方式很简单,成本低,但是访问速度有点慢,但是谁还没有个不在公司coding的时候,这时候就可以提供点便利了。
总结
啊,感觉有点昏了,其实在找资料的过程中我一直卡在了nexus的打开,重点在打不开啊,我下了很多版本,哎。。
然后nexus是搭好了,可是没经过使用啊。
Thanks♪(・ω・)ノ希望对大家有所帮助