在日常开发工作中,经常会有项目要依赖非开源的jar,比如Oracle数据库驱动,或者项目组、公司有已经开发好的类库,可以直接拿来使用。这种情况下有两种选择,第一种,使用maven命令将这些jar文件直接安装到你的本地仓库;第二种,把这些jar文件放到maven私服上。本节我们要讲的是第二种方式。
在开始前先介绍一下私服(如果你已了解,请忽略这个介绍),从前面的章节我们已经知道仓库有本地和远程之分,你可以这样理解,私服就是你自己搭建的远程仓库服务器,他有两个主要的用途,存储第三方jar和存储maven中央仓库下载的jar以节省网络带宽,当然私服还有很多其他的用途,比如编译安卓apk等,如你感兴趣,可自行百度或谷歌。
存储第三方jar就是把前面提到的maven中央仓库里没有的jar放到私服上,在你的工程的pom文件中声明私服地址,让项目能找到依赖的jar
存储maven中央仓库下载的jar,在项目开发中让私服保存从中央仓库下载的jar,这样下一次要使用这些jar时,就会直接从私服上下载,不用从maven中央仓库下载,节省公司带宽(说实话,这种情况在实际工作中用的很少,现在哪个使用java开发软件的公司不能联网,而且公司的网络一般都不会太差)
让我们开始吧
首先从http://www.sonatype.com/download-oss-sonatype下载maven私服安装文件,在写该教程的时候官方提供的最新版本是3.0.1,在3.x版本中没有上传第三方jar的功能,所以我们使用2.x版本,我这里下载的是nexus-2.13.0-01-bundle.tar.gz(需要jdk1.7,如果jdk版本低于1.7请自行升级),接下来就是安装了。
创建nexus安装路径
cd /usr/local/
mkdir nexus
cp nexus-2.13.0-01-bundle.tar.gz /usr/local/nexus/
cd /usr/local/nexus/
tar -xzvf nexus-2.13.0-01-bundle.tar.gz
解压后会有两个文件nexus-2.13.0-01 、sonatype-work
nexus-2.13.0-01是nexus的运行环境和应用程序
sonatype-work是配置和数据
cd nexus-2.13.0-01
cd bin
启动nexus
./nexus start
到目前为止nexus已经安装好了,如果你想做成开机启动,或者添加到系统环境变量里等,可自行配置,这里就不在赘述,下面让我们来配置一下nexus,并添加一个jar,然后在项目中使用一下私服上的jar
在浏览器中输入http://yourhostname:8081/nexus 使用admin/admin123登录
添加第三方jar
下面这段代码是我在要上传的jar中写的一个测试类
到现在为止,我们的第三方jar,已经上传成功了,可以浏览一下
下面我们在项目中使用一下我们刚刚在私服上上传的jar,私服已经为我们提供好了dependency的具体信息,可以查看
在我们的项目pom文件中添加如下仓库配置
<repositories>
<repository>
<id>myrepository</id>
<name>nexus repository</name>
<url>http://10.75.133.51:8081/nexus/content/groups/public/</url>
</repository>
</repositories>
在dependencies中添加如下配置
<dependency>
<groupId>com.ittechcourse.maven.test</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0</version>
</dependency>
当我们运行maven命令的时候,发现已经能够从私服上下载刚才我上传的jar了