您的位置:首页 > 其它

Maven项目连接&发布到Nexus私服

2017-09-22 10:09 495 查看
【前言】

接上一篇。
如果你本地还没有安装maven,那就……传送门
如果你还没有搭建Nexus环境,那就……传送门

【环境】

Windows7 x64Eclipse MarsNexus 2.14.5-02apache-maven-3.3.3JDK1.7

1.Maven项目连接私服

我已经提前准备好了如下工作:
(1)使用Eclipse创建普通的Maven项目



(2)在私服上上传了一个第三方jar包oracle的jdbc驱动,以便测试。



1.1 单一项目连接配置

pom文件project节点下加入如下配置,以下配置只对本项目起作用。
<!-- 配置私服仓库 -->
<repositories>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://192.168.1.80:8081/nexus/content/groups/public/</url>
<!-- true表示开启该远程仓库中release版本的下载,下同 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- true表示开启该远程仓库中snapshots版本的下载,下同 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

<!-- 配置私服插件库 -->
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>nexus</name>
<url>http://192.168.1.80:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>

保存之后,再加入oracle驱动包的dependency,经测,可以正常下载依赖,说明该配置没有问题。

1.2 全局连接私服配置

        相对前面的方式,还有一种方式作用效果更为广泛,即修改本机maven安装目录下conf/setting.xml文件的配置,如下:
        注意:以下配置修改之后需要在Eclipse里面进行update setting↓↓↓↓↓↓



(1)方式1:设置镜像mirror

<!-- 只需设置该镜像仓库配置即可 -->
<mirrors>
<mirror>
<id>nexus</id>
<name>nexus maven</name>
<url>http://192.168.1.80:8081/nexus/content/groups/public/</url>
<!-- 还有central等配置 -->
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>

(2)方式2:设置profile

<!--
该配置类似于之前单一项目的连接配置,没错,只不过是拿出来放到了全局setting.xml文件中了;
如果两边同时存在id相同的repository,则setting.xml文件中的会覆盖pom.xml文件中的配置
-->
<profiles>
<profile>
<id>nexus profile</id>
<repositories>
<repository>
<id>nexus</id>
<url>http://192.168.1.80:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<url>http://192.168.1.80:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<!-- 注意此处要对以上设置进行激活 -->
<activeProfiles>
<activeProfile>nexus profile</activeProfile>
</activeProfiles>

        至于这两种方式有什么区别嘛,我可以很不负责任的说,我也布吉岛……有兴趣的童鞋可以去百度一哈setting.xml文件的详细解析。

2.发布项目到私服仓库

2.1 首先配置pom.xml

<distributionManagement>
<repository>
<!-- 注意:这里的id一定要和setting.xml文件中server下的id保持一致,下同 -->
<id>nexus-releases</id>
<name>Local Nexus Repository</name>
<url>http://192.168.1.80:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Local Nexus Repository</name>
<url>http://192.168.1.80:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

2.2 其次配置setting.xml

<!-- 该配置是用于发版打包项目到Nexus时的用户信息认证,注意:该用户一定要有相应的权限才可以 -->
<servers>
<server>
<!-- 注意:这里的id一定要和distributionManagement下repository中的id保持一致,下同 -->
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>

2.3 最后运行deploy命令发布

都配置完成之后,选择项目右键→Run As→Maven build(第二个)→Goals 中输入“deploy”→Run





如果你看到了以下输出信息,说明已经发布成功了:



查看Nexus上的快照库,已经可以看到项目的jar包了:



        辣么问题来了,以上的配置完成之后是只发布到Snapshots 快照库的,如果想发布一个正式release版本怎么办?偷偷告诉大家,其实这个是在这里控制的,注意不要眨眼睛↓↓↓↓↓↓



        没错,这就是项目pom文件中的开头一段声明,其实maven是通过版本号version中是否带有“-SNAPSHOT”来判断是快照版本还是正式版本;如果想发布正式版本把“-SNAPSHOT”去掉只留版本号即可,加上之后即为快照版本。注意,这里的SNAPSHOT一定要大写,重要的事情只说一遍就行了<(* ̄▽ ̄*)/……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: