使用maven,gradle等构建项目必定会用到nexus来搭建私服,Maven的公服与私服是非常重要的概念
Apache Maven是采用纯Java编写的开源项目管理工具。Maven采用了Project Object Model(POM)的概念来管理项目。项目相关的配置管理信息存储于pom.xml文件中。可以通过该文件来查看项目的管理周期,同时可以实现清理,编译,测试,打包等功能。目前绝大多数的Java项目均采使用Maven进行项目挂管理。Maven本身支持的插件机制可以更加灵活的对项目进行控制。便于开发人员把注意力放在业务实现上而不是去选择不同的编译、环境配置、项目部署等问题。
Maven中所依赖的各种开源的jar包都存储于中央仓库上,中央仓库提供类似于Apache等jar包的下载、管理等。但是在某些场景下我们又需要自己管理公司所开发的jar包。例如基础工具类包,或者common类的bean包等。这样的话就需要能够对该工具包进行管理。提供给公司所有员工进行访问。这样就可以使用nexus搭建maven的私有化仓库。也就是常说的私服。
Nexus全称Nexus Repository Manager OSS,是实现Maven的私有化仓库工具。Nexus当前不仅仅是能够实现maven项目的管理同样可以实现npm,NuGet,RubyGems,Docker,P2,OBR,APT和YUM等存储与分发。
Nexus的安装较为简单,我们当前可以直接进行下载安装。
wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.14.0-04-unix.tar.gz
tar- zxvf nexus-3.14.0-04-unix.tar.gz
mv nexus-3.14.0-04 /ROOT/server/
/ROOT 是我从公司继承过来的规范,所有相关的操作在ROOT下。而ROOT下具体的目录有 backups(备份路径)、data(数据路径)、install(安装包)、jobs(定时任务,或其他任务)、logs(日志路径)、scripts(脚本路径)、server(服务)、tmps(临时文件)、www(web服务类)。
执行
/ROOT/server/nexus-3.14.0-04/bin/nexus start
日志输出信息提供启动成功,WARNING是表示不建议使用root方式进行启动,最好切换为其他用户。
查看 /ROOT/server 目录下,发现多了一个 sonatype-work ,该目录就是nexus的工作目录,目录下存储着缓存文件,db文件,日志等相关内容。首次启动较慢,可以进入log文件中查看启动状态。
显示该内容则表示启动成功,使用浏览器访问 ip:8001 进入web系统. 默认帐号密码:admin,admin123
找到maven的conf下的settings.xml进行配置修改。
<!--设置nexus的帐号密码,便于上传jar包-->
<servers>
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<!--设置nexus镜像,便于jar包的下载-->
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus</name>
<url>http://ip:8081/repository/maven-public/</url>
</mirror>
</mirrors>
设置需要上传的工程pom.xml
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>Nexus Release Repository</name>
<url>http://ip:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://ip:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
使用idea的maven插件进行deploy上传
上传成功.
进入nexus web页面即可搜索到该jar包。
当jar包上传到nexus成功后,确认maven的settings.xml配置文件中配置的mirror是私服的地址那么即可进行使用。
在需要依赖的pom.xml文件中进行依赖。
<dependency>
<groupId>groupId</groupId>
<artifactId>artifaceId</artifactId>
<version>0.0.1</version>
<scope>compile</scope>
</dependency>
即可进行使用
nexus repository oss是实现maven或其他工具实现私有化仓库的工具。私有化能够更加便利与程序的开发,结合maven等其他相关工具能够实现对项目更好的管理。nexus管理的二方包对于公司内部业务的产品线归纳总结更好。工程质量能够得到更好的把控。积累更多的项目,技术经验。例如工具类,能够基于版本的迭代实现越来越好越来越强大的功能。