私服是什么
私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视。Nexus是常用的私用Maven服务器,一般是公司内部使用。下载地址是http://www.sonatype.org/nexus/go,也可以点击这里下载。
安装Nexus
把下载下来的Nexus.war放到tomcat的webapps目录下,然后重启tomcat即可,在浏览器中输入:http://ip:port/nexus 能打开下面界面说明安装成功。我的nexus安装路径为:http://192.168.145.89:8080/nexus
说明:nexus登录的默认登录用户名为admin,密码为:admin123,点击右上角即可登录,该用户名密码在后面配置maven的setting.xml会用到
常用功能
Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。
最频繁的就是点击左侧菜单栏的Repositories按钮。
一般用到的仓库种类是hosted、proxy。Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如Oracle驱动、比如商业软件jar包。Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。
hosted 类型的仓库,内部项目的发布仓库
releases 内部的模块中release模块的发布仓库
snapshots 发布内部的SNAPSHOT模块的仓库
3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去
proxy 类型的仓库,从远程中央仓库中寻找数据的仓库
group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库
私服上传jar文件
登录nexus,点击3rd party,点击Artifact Upload tab标签,选择本地的jar包上传。
下载maven插件
点击下载maven,解压的目录如下
maven的配置文件在conf目录下的setting.xml,maven的环境变量配置自行百度。
Eclipse关联maven配置文件
打开Eclipse,选择Window->Preferences,打开如下界面,并做如下操作:
点击 User Settigs 关联maven的settings.xml配置文件
修改settings文件
修改maven的settings文件关联并关联到nexus,这样创建maven工程的时候,就可以把jar包deploy到nexus上,并从nexus上下载jar包。
上传私服配置
settings.xml做如下配置:
pom文件中copy如下代码
<distributionManagement>
<repository>
<id>deploymentRepo</id>
<name>User Project Release</name>
<url>http://192.168.145.89:8080/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>deploymentRepo</id>
<name>User Project SNAPSHOTS</name>
<url>http://192.168.145.89:8080/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
新建一个maven工程,输入clean deploy命令,即可把该jar包发布到nexus服务器上。
下载私服配置
setting.xml配置
pom文件配置
<repositories>
<repository>
<id>central</id>
<name>central</name>
<url>http://192.168.145.89:8080/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
添加如下坐标即可引用私服上的jar包
<dependency>
<groupId>com.nexus</groupId>
<artifactId>nexustest01</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
clean一下工程即可引用到该jar包