搭建私服能够做什么?

1、假设公司开发组的开发环境所有内网。这时怎样连接到在互联网上的Maven中央仓库呢?

2、假设公司常常开发一些公共的组件。怎样共享给各个开发组。使用拷贝方式吗?假设这样,公共库升级了怎么办?

当然能够解决的问题可能不止上面两点。以下来介绍在Linux中搭建自己的Maven私服。使用Nexus。

一、下载和安装

网址:http://www.sonatype.org/nexus/go/

下载包:nexus-2.12.0-01-bundle.tar.gz

解压包:tar -zxvf nexus-2.12.0-01-bundle.tar.gz

默认port为8081。如需改动请查看配置文件 conf/nexus.properties

它本身不建议在root用户下使用。假设我们须要在root用户下启动服务,要先配置 bin/nexus 文件里的 RUN_AS_USER=root

二、私服的启动和配置

启动

[root@localhost nexus-maven]# cd nexus-2.12.0-01/bin/
[root@localhost bin]# ./nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
[root@localhost bin]# ./nexus status
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Nexus OSS is running (34504).
[root@localhost bin]#

启动后訪问首页: http://192.168.19.130:8081/nexus/index.html

登录默认账号/password admin/admin123

打开 Repositories 将列表中所有Type为proxy 的项目的 Configuration 中的 Download Remote Indexes 设置为True

将Releases仓库的Deployment Policy设置为*Allow ReDeploy

设置 deployment 账户password



然后在Central 仓库上右键然后点击 Repair Index 下载中心仓库的索引文件,若干时间后,能够点击下边的 Browse Index 就可以看见下载的索引文件。


当然我们也避免不了会使用到一些第三方的 jar 。而这些jar包也不存在于互联网上的maven中央仓库中,这时我们能够手工加入jar 到我们的私服中。

加入第三方 jar 例如以下:

假设须要删除。例如以下:

三、本地项目配置引用私服

在项目的 pom.xml 中配置私库地址,pom.xml 的以下加入:

    <!-- 私有仓库 -->
<repositories>
<repository>
<id>public</id> <!--这个ID须要与你的组group ID一致-->
<name>Public Repository</name>
<url>http://192.168.19.130:8081/nexus/content/groups/public</url>
</repository>
</repositories> <!-- 打包公布 -->
<distributionManagement>
<repository>
<id>releases</id><!--这个ID须要与你的release仓库的Repository ID一致-->
<url>http://192.168.19.130:8081/nexus/content/repositories/releases</url>
</repository> <snapshotRepository>
<id>snapshots</id><!--这个ID须要与你的snapshots仓库的Repository ID一致-->
<url>http://192.168.19.130:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

在settings.xml 中配置 server 账户信息:

  <servers>
<server>
<id>releases</id>
<username>deployment</username>
<password>dev123</password><!--这个password就是你设置的password-->
</server>
<server>
<id>snapshots</id>
<username>deployment</username>
<password>dev123</password><!--这个password就是你设置的password-->
</server>
</servers>

须要说明一点:

当pom.xml中同一时候配置了releases仓库和snapshots仓库时。

pom.xml文件开头的版本号配置1.0.0-SNAPSHOT为build到snapshots库。

pom.xml文件开头的版本号配置1.0.0 (不带-SNAPSHOT) 的会build到releases库,

假设仅仅配置了releases库而版本号号写的是带-SNAPSHOT的。build到最后一步会报400错误,由于它找不到相应的库。

四、測试

1、新建一个简单的maven项目,随便写个类。

在pom.xml 文件按上面 三、本地项目配置引用私服 方法加入 私有仓库和打包公布配置

然后使用命令 mvn deploy 公布成功后。此时我们在我们的私服中就能够看到公布后的结果,例如以下:

2、再新建一个项目。或者使用已有的maven项目(最好使用别人的环境不同的电脑)。

在pom.xml 中和第1步一样先配置私库地址,然后加入第1步公布后的 dependency 后,就能够看到jar 被正常载入到project中了。

搭建Maven私服(使用Nexus)的更多相关文章

  1. Maven学习 (四) 使用Nexus搭建Maven私服

    为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...

  2. Maven-004-使用 Nexus 搭建 maven 私服

    从去年至今,自己一直在学习自动化测试工具,想利用自动化工具尽可能的将重复的.关键的.耗时耗力的工作实现自动化,减轻日常测试工作,提升测试效率.在学习的过程中,将 maven 作为了项目开发管理工具,进 ...

  3. Ubuntu server下搭建Maven私服Nexus

    Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu ...

  4. Maven使用笔记(五)Sonatype Nexus 搭建Maven 私服

    1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地, 而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载 ...

  5. Maven——使用Nexus搭建Maven私服

    原文:http://www.cnblogs.com/xdp-gacl/p/4068967.html Maven学习总结(九)--使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要 ...

  6. Maven学习 使用Nexus搭建Maven私服(转)

    为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...

  7. (转)Maven学习总结(九)——使用Nexus搭建Maven私服

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(九)——使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目 ...

  8. Linux下使用Nexus搭建Maven私服

    在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包放在外部是不合适的.另外,由于项目一直在开发中,这些内部的依赖可能也在不断的更新.可以通过搭建公司内部的Maven服务器,将第三方和内部的 ...

  9. Maven学习二:使用Nexus搭建Maven私服及相关配置

    处于安全等原因的考虑,一些企业内部网络是不允许访问外部网络的,但是项目内部搭建的项目又是Maven架构,这样就需要企业在内部网络中搭建自己的Maven仓库服务,再者一些大型企业或者内部模块化组件化划分 ...

  10. Maven学习-使用Nexus搭建Maven私服

    为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...

随机推荐

  1. java对比IO和NIO的文件读写性能测试

    1. NIO采用更接近操作系统执行IO的方式:通道和缓存器:顾名思义,数据源的数据由缓存器通过通道进行传输. 2. 在JDK5之后,原始IO系统底层用NIO进行了优化,这可以通过sun公布的源码中找到 ...

  2. OI Journal

    佛系更新,哪天想起来就写点. 10.11 班主任硬灌的鸡汤真香 qtmd,简直就是硬扯,说怎么怎么着说不定就能多拿一分两分,一分两分就能割掉好多人 ......螺旋懵圈状,我表示硬憋着不笑 HIAHI ...

  3. More Effective C++ - 章节二 : 操作符(operators)

    5. 对定制的 "类型转换函数" 保持警觉 允许编译器执行隐式类型转换,害处多过好处,不要提供转换函数,除非你确定需要. class foo { foo(int a = 0, in ...

  4. babel实践

    现在的主流浏览器还没有完全兼容ES6的语法,如ie11就不支持箭头函数. 使用过es6的人都知道,es6更加简洁和强大,可是使用es6写出来的代码并不能得到所有主流js引擎的支持,针对这一点,一个解决 ...

  5. uC/OSii之任务划分

    满足以下几个指标将会使软件设计比较简洁高效. 满足实时性指标 任务数目合理 简化软件系统 降低资源需求 设备依赖性划分:主要是对于一些输入输出设备进行划分,输入输出设备分为主动型和被动性.主动型有一个 ...

  6. C#窗体学生成绩管理系统

    c#学生成绩管理系统 实现用户登录.注册 所有成绩查询.个人成绩查询 管理员审核.添加.删除用户 项目源码GIT:https://github.com/soulsjie/StuScoreMa.git

  7. Leetcode 299.猜字游戏

    猜字游戏 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls&q ...

  8. 75. Spring Boot 定制URL匹配规则【从零开始学Spring Boot】

    在之前有一篇文章说了,博客名称从原来的<从零开始学Spring Boot>更改为<Spring Boot常见异常汇总>,后来写了几篇文章之后发展,有些文章还是一些知识点,所以后 ...

  9. CodeForces 21 A+B

                                                         Jabber ID 判断邮箱地址格式是否正确..一把心酸泪...跪11+,,看后台才过.. 注 ...

  10. Java设计模式之(工厂模式)

    工厂模式: 工厂模式可以分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 简单工厂模 ...