Maven私服架设(nexus / on windows)

Maven私服可以用多个不同的产品可供选择,下面我们演示使用最为广泛的nexus来架设maven本地私服
 
Nexus的下载及安装请见官方下载页: http://www.sonatype.org/nexus/go
我们可以有两种安装方式:1. 独立服务器方式运行,nexus内置netty, 2: 下载.war文件,放到我们已有的容器(比如:tomcat)中运行
 
第一种方式:
我们可以下载.zip文件,然后直接解压到bin文件下找到nexus.bat这个批处理文件,然后运行> nexus install将nexus安装成windows服务,然后再services.msc里设置该服务器随操作系统自动启动,或运行在命令行运行> nexus.bat start也可以启动这个nexus服务
 
第二种方式:
下载.war文件(目前版本nexus-2.8.0-05),重命名为nexus.war,然后放到web容器webapp目录下运行
 
建议采用第二种方式,将nexus.war放到web容器中运行
 
nexus默认的工作目录地址为:${user.home}/sonatype-work/nexus,如果我们需要设置成其他目录请到nexus/WEB_INF/plexus.properties文件中找到改行并修改
 
一切准备好了之后,输入http://localhost/nexus, 如果显示正常表示安装成功
 
Maven私服架设(nexus / on windows)
 

点击右上角login,默认账户:admin/admin123

 
默认情况下,nexus已经内置创建好了各种我们需要的repositories,这基本上已经够用了。具体如何使用nexus自己去baidu
 
然后我们需要修改{user.home}/.m2/settings.xml文件设置本地仓库
 
首先我们需要在<mirrors>节点中添加一个<mirror>节点配置,用本地仓库作为外部远程仓库的镜像,让maven先从本地仓库查找看是否有我们需要的依赖
 <mirror>
<id>nexus</id>
<url>http://localhost/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirror>

上述配置表示使用本地的public仓库组作为所有外部仓库的镜像,换句话说,maven在查找依赖的时候首先从本地找,找不到才去外部仓库找,需要注意的是,即使我们这里配置了本地仓库作为外部所有仓库的依赖,但是此时maven仍然还会去连接central(*仓库),如果想要彻底阻止maven访问远程central仓库,我们还需要做如下配置:

 
在<profiles>节点下添加一个<profile>节点,并且在<activeProfiles>中激活这个profile
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>

这样maven就可以访问本地仓库来替代访问外部仓库了

 
如何将项目部署到本地仓库

在pom.xml文件中添加以下配置节点
<distributionManagement>
<repository>
<id> nexus-releases</id >
<name> Local nexus releases repository</name >
<url> http://localhost/nexus/content/repositories/releases/ </url>
</repository>
<snapshotRepository>
<id> nexus-snapshots</id >
<name> Local nexus snapshots repository</name >
<url> http://localhost/nexus/content/repositories/snapshots/ </url>
</snapshotRepository>
</distributionManagement>

说明:上面的配置文件中指定的是将打包文件部署到本地的一个仓库,对外部或本地仓库的访问一般都需要配置权限,所以还需要在settings.xml文件中配置访问权限

<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>

上面的<server>.<id>节点中的名称需要和<repository>的<id>中定义的名称保持一致

上一篇:【Linux Tips】登陆,提示符,别名


下一篇:解决使用vue-cli生成项目后项目地址自动添加#号的问题