Maven默认提供的中央仓库是在远程网络服务Appache提供的,这对于我们开发时不合理的。如果我们没网了或者什么情况,我们怎么办?我们需要的jar包中央库没有或者是要收费怎么办?也就是说我们队中央仓库的依赖性太大。而Nexus私服则可以解决我们这个问题。
这样就相当于在我们本地的局域网搭建了一个类似中央仓库的服务器,我们开始将中央仓库的一些资料下载到私服务器上,然后平时我们的maven项目就是直接访问局域网内的私服即可,既节省了网络带宽也会加速项目搭建的进程,这样对我们开发来说,对公司来说都是非常好的选择。项目内部和项目与项目之间也可以共享jar包,达到代码的最大化利用。
一般有两种情况需要我们上传jar包至nexus,一个是本地项目生成的jar包,另一个是我们从第三方拿过来的的中央库中不存在的jar包,前者采用maven工程deploy的方法,后者采用手动上传的方式。
GAV Parameters方式只能上传单个jar包,无法携带依赖。 示例中使用的jar包为:geogson.jar包,基本信息:
<dependency>
<groupId>com.nsn.geogson</groupId>
<artifactId>geogson</artifactId>
<version>1.0.0</version>
</dependency>
1.首先登陆nexus,进入3rd party,选择Artifact Upload
2.填写相应的信息,版本等等
3.添加后提交
4.导入成功后,search该包显示如下:
From POM方式,可以将上传jar包的依赖一起上传。例如:我们想传a.jar到私服,但是a.jar还依赖b.jar,假如只传a.jar到私服,在项目中会因为找不到a.jar的依赖(b.jar)而报错。
当需要导入DB2驱动时,需要db2jcc.jar,而db2jcc.jar又要依赖db2jcc_license_cu.jar,此时,导入方式如下
1.编写POM 手动编写db2jcc.jar的pom.xml,如下:
<project ...>
<modelVersion>4.0.0</modelVersion>
<groupId>xxx.xxx.db2driver</groupId>
<artifactId>db2jcc</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>db2jcc</name>
<dependencies>
<dependency>
<groupId>xxx.xxx.db2driver</groupId>
<artifactId>db2jcc-license-cu</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>
2.在Nuxus的GUI中导入 导入方式如下:
3.导入依赖的jar 导入依赖的db2jcc_license_cu.jar,如下:
注意这里的配置必须按照1中的配置。
最后,确保所有依赖的jar全部导入进第三方宿主仓库后,就可以在工程中引入,配置如下:
<dependency>
<groupId>xxx.xxx.db2driver</groupId>
<artifactId>db2jcc</artifactId>
<version>1.0.0</version>
</dependency>
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。