一、Nexus的相关介绍1.1使用私服的作用:Maven中所依赖的各种开源的jar包都存储于中央仓库上,中央仓库提供类似于Apache等jar包的下载、管理等。但是在某些场景下我们又需要自己管理公司所开发的jar包。例如基础工具类包,或者common类的bean包等。这样的话就需要能够对该工具包进行管理。提供给公司所有员工进行访问。这样就可以使用nexus搭建maven的私有化仓库。也就是常说的私服。1.2 Nexus介绍Nexus全称Nexus Repository Manager OSS,是实现Maven的私有化仓库工具。Nexus当前不仅仅是能够实现maven项目的管理同样可以实现npm,NuGet,RubyGems,Docker,P2,OBR,APT和YUM等存储与分发。Repositories:1、Proxy:代理中央Maven仓库,当PC访问中央库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地;代理的maven地址为:https://repo1.maven.org/maven2/2、Hosted:宿主机,就是怎么把第三方的Jar放到私服上; Hosted有三种方式,Releases、SNAPSHOT、MixedReleases: 一般是已经发布的Jar包Snapshot: 未发布的版本Mixed:混合的注意事项:Deployment Pollcy: 我们需要把策略改成“Allow redeploy”。3、Group:两个仓库合成一个仓库来使用。1.3 Nexus使用maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar(Proxy)maven-releases:私库发行版jar(Hosted)maven-snapshots:私库快照(调试版本)jar(Hosted)maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置(Group)注意:可以使用nexus自带的Proxy、Hosted、Group库,也可以使用自己创建。二、 Maven的setting.xml文件配置Nexus2.1 找到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文件整合Nexus3.1 设置需要上传的工程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>
3.2 使用idea的maven插件进行deploy上传注意:pom文件的id一定要与settings.xml的sever下的id一致。四、为项目分配独立的仓库:如果我们将所有项目的快照版本和发布版本构件都部署到同样的仓库,就有潜在的冲突以及安全问题。我们不想让项目A的部署影响到项目B,也不想让项目B的部署影响到项目A,那么解决方法就是为每个项目分配独立的仓库,并且只将仓库的部署、修改和删除权限赋予该项目的成员,其他用户只能拥有读取、下载和搜索该仓库内容的权限。五、上传第三方Jar包命令mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=12.1.0.1-atlassian-hosted -Dpackaging=jar -Dfile=E:\ojdbc6-12.1.0.1-atlassian-hosted.jar -Durl=http://ip:8081/repository/3rd_party/ -DrepositoryId=3rd
0 评论