您的位置:首页 > 其它

基于nexus的maven私服配置

2016-08-18 00:00 141 查看
在maven项目的开发中,因为maven官方库资源下载慢的原因,一般我们都会选择搭建一个私服,一般都会选择nexus作为私服,但是nexus安装完以后,只是完成了私服的第一步,还需要第二步,即配置私服,在实际项目中使用,这儿主要讲解第二部。

这部分主要分了两个部分,第一部分为下载库,第二部分为上传库,即当有一些包我们不能冲maven库中下载的时候,就需要我们将这些包上传到私服供他人使用。

1、配置下载库

配置下载库有两种方式:

第一种是直接在pom文件中配置,直接使用,具体代码如下:

<repositories>
<!-- 远程仓库的连接信息,依赖扩展的jar包库 -->
<repository>
<!--  远程仓库唯一标识  -->
<id>central</id>
<!--  远程仓库地址  -->
<url>http://192.168.10.112:9037/nexus/content/repositories/central/</url>
<!--  允许发布版本下载  -->
<releases>
<enabled>true</enabled>
<releases>
<!--  允许快照版本下载  -->
<snapshots>
<enabled>true</enabled>
<snapshots>
</repository>
</repositories>
<!--  插件库地址  -->
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://192.168.10.112:9037/nexus/content/repositories/central/</url>
<releases>
<enabled>true</enabled>
<releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>

直接在pom中配置有一个缺点,该配置值针对当前项目有效,如果新开一个项目,还需要重新配置,因此衍生出第二种方式。

第二种是在maven配置文件setting.xml中进行配置,具体代码如下:

<profiles>
<profile>
<id>nexus</id>
<!--  仓库  -->
<repositories>
<repository>
<id>central</id>
<name>Nexus</name>
<url>http://192.168.10.112:9037/nexus/content/repositories/central/</url>
<!--发布版本配置-->
<releases>
<!-- 允许搜索发布版本 -->
<enabled>true</enabled>
<!-- 指定更新频率:never-从不,always-一直,daily-每天,interval:X-分钟数 -->
<updatePolicy>never</updatePolicy>
<!-- 校验不通过的情况下执行的操作:fail-失败,ignore-不管,warn-警告 -->
<checksumPolicy>fail</checksumPolicy>
</releases>
<!-- 快照版本配置 -->
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
<!--  插件仓库  -->
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Nexus</name>
<url>http://192.168.10.112:9037/nexus/content/repositories/central/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>

有了上面的配置以后,在项目的pom中也不会直接调用,还需要我们在setting配置文件中激活对应的profile,代码如下:

< activeProfiles>
< activeProfile>nexus</activeProfile >
< /activeProfiles>

这样,即使我们不在pom中做任何配置,项目默认也会到setting这个配置的仓库里面去搜索包,注意:如果pom中也有一个仓库配置,但是pom中的配置的id和profile中的id重复,setting配置文件中的配置会覆盖pom中的配置。

上面的配置完成以后,我们可能还会发现一个奇怪的现象,就是maven既在从nexus下载,也在从maven中央库下载。这是因为在超级pom中还有一个定义id为central的仓库,如果这个仓库的id没有被我们覆盖,那maven就可以从中央库下载包,所以在此我们有两种解决办法,第一种就是我们自己写的配置的id为central,这样我们就可以覆盖超级pom里面的仓库配置了;还有一种解决办法就是在setting配置文件中配置一个镜像,然后在镜像中包含我们所需要的仓库,这样所有的搜索仓库的请求都会通过镜像搜索,这样其实上面所配置的url就已经失效了,但是关于快照版本和发布版本的更新还是有作用的,具体代码如下:

<mirrors>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
这个url是nexus中的一个group,包含了central,和我们自己需要的仓库的一个组
<url>http://192.168.10.112:9037/nexus/content/groups/public/</url>
<!--此处配置所有的构建均从私有仓库中下载 *代表所有,也可以写central -->
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>


2、配置部署(上传)库:

部署库主要针对多人开发时,有一部分包在远程仓库中找不到,但是我们的项目开发又需要,这是我们就可以把这部分包上传到我们的私服的仓库,然后供其他人使用。配置部署库也有两种方法:

第一种方法是使用maven部署到私服上的仓库,首先需要在pom里面进行配置,具体代码如下:

<!-- 配置部署的远程仓库 -->
<distributionManagement>
<!-- 指定发布版本发布jar的库 -->
<repository>
<id>releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.10.112:9037/nexus/content/repositories/releases/</url>
</repository>
<!-- 指定快照版本发布jar的库 -->
<snapshotRepository>
<id>snapshots</id>
<name>nexus distribution snapshot repository</name>
<url>http://192.168.10.112:9037/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

然后在setting.xml配置文件做如下配置:

<servers>
<server>
<!-- 注意:这个id要和pom配置文件中的id相对应 -->
<id>snapshots</id>
<!-- 服务器认证时需要的用户名和密码 -->
<username>deployment</username>
<password>password</password>
</server>
<server>
<id>releases</id>
<username>deployment</username>
<password>password</password>
</server>
</servers>

第二种方法:在nexus界面手动部署,具体操作如下





1、进入nexus操作界面,点击repositories,这儿以操作第三方库的形式展示

2、选择3rd party

3、点击artifict upload,进入编辑界面

4、GAV有两种形式:GAV Parameters——用户上传单独的包,From POM——用于上传有依赖包的情况,我们这儿选择的是GAV Parameters

5、auto guess打勾,然后输入包的groupid,artifictid,version,包类型选择jar

6、点击select artifict(s) to upload按钮,选择自己要上传的jar

7、点击add artifict

8、点击upload artifict

然后等待上传成功,最后我们就可以在browse index 下看到我们上传的jar,也可以在右侧看到对应的包信息,使用右侧的信息就可以把包下载到我们的项目中,上传需要依赖包的包的时候,所需要的所有信息都在pom中进行配置,所以只需要上传jar和pom就行了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息