搭建maven私服

当开发部有多个项目时,你会发现肯定有个util文件夹,下面堆满了一大堆的StringUtil,DateUtil,里面又是各种地方copy过来的代码,谁用谁加,然后又不敢轻易的去掉,不小心碰到bug了,除非你敢肯定你的改法是对方想要的,不然你还压根不敢动,还不如再加个方法,随着项目后期,这种代码会越来越多;项目中有微服务如dubbo涉及到大量jar包时,如果你搭建2个dubbo还好说,如果你搭建10个dubbo,某一天你发现需要升级下dubbo版本,难道你要依次修改10个dubbo中的pom文件么。

以上2种情况都可以maven私服来解决,解决方法如下:

1:抽取出公共方法,写到一公共代码工程中,打成jar包,通过pom依赖统一管理。

2:多个项目有大量公共jar时,可以通过抽取成pom的parent来统一管理。

那么开始搭建maven私服,首先下载nexus文件,下载地址

https://help.sonatype.com/repomanager2/download/download-archives---repository-manager-2

我下载的是nexus-2.14.8-01-bundle.tar

下载完成后上传到linux服务器上

一般上传到/usr/local目录下,上传完成后输入命令解压

tar -zxvf nexus-2.14.8-01-bundle.tar

解压完成后会生成对应的2个目录

/usr/local/nexus-2.14.8-01/conf目录下nexus.properties文件是修改端口用,nexus默认端口为8081

输入命令进入到nexus的bin目录下,如下图

输入 ./nexus start 启动,如果有提示报错

那么输入 export RUN_AS_USER=root

再次输入 ./nexus start

启动后,启动成功。以上启动默认linux上已经安装jdk,没有jdk可是无法启动的,如何安装jdk请搜索之。

启动成功后,在浏览器输入 http://10.60.53.251:8081/nexus/ 就可以访问私服了。

右上角点击 Log In,用户名 admin 默认密码 root123,登录后点击左边中间的Repositories,查看私服信息。

下一步问题就是修改本地settings.xml信息,配置私服信息,可以从私服上down jar包了。

找到settings.xml文件,一般位于C盘用户对应的.m2文件夹下,编辑settings.xml文件

用户名和密码没什么好说的,这个id要记住,有几个位置id必须是一致的才行,接下来是profile中的配置,配置如下

这3个位置的id必须保持一致,不然无法down私服上的jar包,id=developer这里是用来区分profile的,通过idea导入maven工程时有一部是要你选择profile的,如图

配置了2个profile,导入项目时会需要你选择导入对应的profile配置,如图

到这里settings.xml就配置完毕,保存退出,现在轮到配置项目工程中pom.xml了。

1:打包成jar提供给其他组件引用

先搭建了一个工具工程px-commons-codec,代码结构如下图

集成了DateUtil,StringUtils,及一些项目需要用到的包装类Result,打开pom.xml

配置修改如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ky.px</groupId>
    <artifactId>px-commons-codec</artifactId>
    <packaging>jar</packaging>
    <version>1.0.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>RELEASE</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <distributionManagement>
        <repository>
            <id>nexus</id>
            <url>http://10.60.53.251:8081/nexus/content/repositories/release/</url>
        </repository>
        <snapshotRepository>
            <id>nexus</id>
            <url>http://10.60.53.251:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
</project>

简单解释下,打成jar包,版本是1.0.0快照,最下面的distributionManagement是配置的 发布路径。groupId和artifactId的话丢个图自行领悟,图如下

然后在idea中,点击右边的maven,找到px-commons-codec准备发布。

依次点击clean,compile,deploy,出现如下提示就表示你已经发布成功。

然后我们回到nexus上,就可以找到我们发布到私服上的jar包了,如图

将xml提供添加到对应项目的pom.xml中,就可以从私服上down下之前发布的jar包并进行引用了。

2:打包成pom提供公共引用

创建一个工程,结构如图

打开pom.xml文件并进行依赖的配置,配置如图

这里配置问题不大,主要是packaging必须配置为pom,配置完成后一样需要打开右边maven,点击deploy发布。

发布完成后,到对应的dubbo微服务中去修改pom.xml配置,我随意改了一个,如图

重点是标记中的配置,继承parent中配置,这样这个report微服务中的依赖就非常干净了,仅仅只有2个,其中1个是对外暴露的接口,1个是之前打包的公共方法。未来要升级dubbo的版本也就非常简单了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值