Windows7下通过Nexus3.13搭建Maven私服

前在一个公司使用过Nexus,那时还不知道这个是个什么玩意,最近公司要搭建自己的maven库,才知道以前用的东西叫nexus,日企的锅,我不背~。~。

本教程基于win7和Nexus3.13版本,因为nexus2.x版本安装下可能会有不同,不做其他解释。

1.下载安装Nexus

下载地址:https://www.sonatype.com/download-oss-sonatype

下载下来的压缩包解压后有两个文件夹:【nexus-3.13.0-01】 和【sonatype-work】,用cmd进入【nexus-3.13.0-01】文件夹下的bin目录,执行命令:【nexus.exe/run】启动nexus。(如果有需要,可以把nexus加入系统服务进程,让它开机自动启动)启动成功后如下图所示:

然后我们登录http://localhost:8081/ 就能够访问到nexus页面。

2.配置nexus

nexus的默认登录是:admin/admin123,登录成功后再在设置中可以看到nexus中的一些库信息:

其中红色框中的库是一开始就默认存在的,绿色框框是我后来自己添加的。一个是用来上传第三方jar包的第三方类库3rdPart,一个是用来获取阿里云镜像的链接库。

第三方类库3rdPart:Create repository的时候选择【maven2(hosted)】这一个,因为这个一个本地类库,具体参数如下:

最后一项Hosted要改成【Allow redeploy】可部署。

阿里云镜像库:Create repository的时候选择【maven2(proxy)】这一个,因为这个一个远程链接库库,具体参数如下:

名字自己随便起,知道就行了,关键是proxy的地址要用阿里云的maven镜像库,因为nexus默认的【maven-central】库,也是一个链接库,只不过他的默认地址是:【https://repo1.maven.org/maven2/】,从这里下载jar包可能会比较慢,所以才配置了阿里云的maven镜像库。

这里说一下nexus默认库,我个人理解,如有不对的地方,还请各位看官指出:

【maven-public】:类型是group,应该就是组概念,是其他库的一个集合体

【maven-releases】:对外正式发布的mavenjar包库

【maven-snapshots】:maven快照库,表明里面的jar包可能是正在开发版

在我们创建好自己的库后,要做一个操作:

我们要在【maven-public】设置的group中,把新建的两个库,从左边的Available中右移添加到Member中,同时我们发现还可以上下调换顺序,应该是在获取jar包时遵从优先原则,从上往下寻找。本人一开始没有添加,导致一直下载不到上传的jar包,猜想可能就是这个原因。

4.上传jar包

这一步通常来说很简单的,我们只要在主页upload中点击上传就行了,记得把最后pom文件的勾打上。

上传完成后是这个样子的:

4.更改maven的setting.xml文件

怎么把服务器上的nexus和我们eclipse中的maven联系在一起呢?

找到你安装的maven,../conf/setting.xml文件中,把标签<mirrors>中的内容替换成你服务器的地址:

 <mirrors>
	<mirror>
	<id>nexus</id>
	<name>nexus maven</name>
	<mirrorOf>*</mirrorOf>
	<url>http://192.168.1.19:8081/repository/maven-public/</url>
	</mirror>
  </mirrors>
 
<!--url中的地址换成你自己的服务器IP地址 -->

这个时候,你就可以连接上nexus,从上面下载自己的jar包了。

5.打包发布jar包

同时,我们还可以打包发布自己的项目到nexus中变成jar包,供其他人直接调用,方法同样是修改setting.xml配置文件。在setting.xml中添加

<!--私有仓库服务的id和登录的用户名和密码-->
  <servers>
    <server>
      <id>user-release</id>  <!--此处id必须与eclipse中pom.xml配置的repository的id保持一致 -->
      <username>admin</username>
      <password>admin123</password>
    </server>  
    <server>
      <id>user-snapshots</id> <!--此处id必须与eclipse中pom.xml配置的repository的id保持一致 -->
      <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>
 
 
 
 <profiles>
    <profile>
    <id>dev</id>             <!--此处id必须与acyiveProfiles标签中的值保持相同 -->
      <repositories>
        <repository>
          <id>nexus</id>
          <url>http://192.168.1.19:8081/repository/maven-public/</url> 
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
     </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>dev</activeProfile>
  </activeProfiles>
同时修改maven项目中的pom文件,添加:
	<!-- 发布项目的配置 -->
  <distributionManagement>
  		<repository>
 			<id>user-release</id>
  			<name>user release version</name>
  			<url>http://192.168.1.19:8081/repository/maven-releases/</url>
  		</repository>
  		<snapshotRepository>
  			<id>user-snapshots</id>
  			<name>user snapshots version</name>
  			<url>http://192.168.1.19:8081/repository/maven-snapshots/</url>
  		</snapshotRepository>
  </distributionManagement>

id什么的都要注意保持一致,修改完之后通过在项目上右击:Run As→Maven build→Run

然后控制台会出现一系列log,直到出现:

说明已经成功了,这个时候去nexus上面找一下,就能看到我们刚刚build的包了:

 如果出现maven build后控制台什么反应也没有的情况,请百度:Eclipse Maven Build命令执行无效解决方法?

这里给上其他博主的解决方法:https://blog.csdn.net/xiongyouqiang/article/details/78604630

OVER!

猜你喜欢

转载自blog.csdn.net/worldchinalee/article/details/82684711