基于nexus的maven私服配置
2016-08-18 00:00
141 查看
在maven项目的开发中,因为maven官方库资源下载慢的原因,一般我们都会选择搭建一个私服,一般都会选择nexus作为私服,但是nexus安装完以后,只是完成了私服的第一步,还需要第二步,即配置私服,在实际项目中使用,这儿主要讲解第二部。
这部分主要分了两个部分,第一部分为下载库,第二部分为上传库,即当有一些包我们不能冲maven库中下载的时候,就需要我们将这些包上传到私服供他人使用。
第一种是直接在pom文件中配置,直接使用,具体代码如下:
直接在pom中配置有一个缺点,该配置值针对当前项目有效,如果新开一个项目,还需要重新配置,因此衍生出第二种方式。
第二种是在maven配置文件setting.xml中进行配置,具体代码如下:
有了上面的配置以后,在项目的pom中也不会直接调用,还需要我们在setting配置文件中激活对应的profile,代码如下:
这样,即使我们不在pom中做任何配置,项目默认也会到setting这个配置的仓库里面去搜索包,注意:如果pom中也有一个仓库配置,但是pom中的配置的id和profile中的id重复,setting配置文件中的配置会覆盖pom中的配置。
上面的配置完成以后,我们可能还会发现一个奇怪的现象,就是maven既在从nexus下载,也在从maven中央库下载。这是因为在超级pom中还有一个定义id为central的仓库,如果这个仓库的id没有被我们覆盖,那maven就可以从中央库下载包,所以在此我们有两种解决办法,第一种就是我们自己写的配置的id为central,这样我们就可以覆盖超级pom里面的仓库配置了;还有一种解决办法就是在setting配置文件中配置一个镜像,然后在镜像中包含我们所需要的仓库,这样所有的搜索仓库的请求都会通过镜像搜索,这样其实上面所配置的url就已经失效了,但是关于快照版本和发布版本的更新还是有作用的,具体代码如下:
第一种方法是使用maven部署到私服上的仓库,首先需要在pom里面进行配置,具体代码如下:
然后在setting.xml配置文件做如下配置:
第二种方法:在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就行了。
这部分主要分了两个部分,第一部分为下载库,第二部分为上传库,即当有一些包我们不能冲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就行了。
相关文章推荐
- 搭建配置私服-nexus ,Maven中的使用——3
- Linux安装配置maven3.0以及搭建nexus私服
- Maven的使用及Nexus私服配置(二)
- Linux安装配置maven以及搭建nexus私服
- mac下安装、配置nexus,构建maven私服
- maven仓库--私服(Nexus的配置使用)
- Linux安装配置maven以及搭建nexus私服(实践记录)
- Maven学习(二十六)-Maven私服(三) - Nexus的简单配置
- 用nexus搭建maven私服 配置
- windows7下maven的安装及配置 +nexus私服的搭建
- Linux安装配置maven3.0以及搭建nexus私服
- Maven私服(三) - Nexus的简单配置
- Linux 安装配置maven3.0 以及搭建nexus私服
- maven私服nexus的安装、配置、使用
- maven项目配置时私服nexus以及仓库repository的一些情况
- maven 下载nexus私服jar配置
- Maven和 Sonatype Nexus私服的安装、配置及使用入门
- Nexus2.6(maven私服)安装配置教程
- maven+nexus私服库的搭建配置
- Linux安装配置maven以及搭建nexus私服