idea + maven + nexus 实战全套

背景介绍

接上一篇文章,linux 上部署 nexus 和 maven
上篇文章研究完了 基本部署和上传 jar 包及下载 jar 包。那么核心技术已经解决。接下来的任务是把一个传统的 lib-jar web 工程转换成 maven 工程。在这中间也反推上篇文章的可行性是没有问题的。

硬件介绍

  1. apache-maven-3.5.2 提取码: x66x
  2. idea 2019 企业版

技能列表

  • 使用 idea 优化 maven jar 包依赖。查看、清除 冲突和重复的 jar 包
  • 使用 idea 创建 pom 、 jar 、 war 等工程
  • 设计 maven 工程架构。包含 父子工程、聚合工程、独立 jar 包

使用 idea 优化 maven jar 包依赖。查看、清除 冲突和重复的 jar

优秀的文章
上述文章描述了idea 如何查看、排除 maven jar 包的基本操作。我在此处补充描述一些常用操作。
如何快速认识和排查相关依赖

  1. 第一步看直接依赖
    在这里插入图片描述
    这一列是工程中直接写 dep 产生的依赖。此处会产生大量重复依赖,因为你也写的两个或多个 dep 之前是否存在引用关系。如 A 引用了 B ,我们把 B 也写了一个 dep
 		<dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.6</version>
        </dependency>

反面案例重复引用 此时我们可以大胆的删除 servlet-api 。因为 它被 jsp-api 引用了。项目会自动加载 servlet-api 包。

在这里插入图片描述
为了安全起见,删除被引用的包之后,可以再次观察下方图片处,查看一下对应的包是否还存在。一般都会存在,不过可能版本会改变。因为 jsp-api 中引用的版本不一定和主动引用的一致。最后使用哪个版本由项目自己决定,如果需要使用高版本,则不用删除了。此处只是介绍如何排查。
在这里插入图片描述

  1. 查看间接重复引用
    大家的项目可能存在大量虚线。其实我并不知道这些虚线会导致什么问题,只是强迫症让我必须把它清理调。如下图:
    在这里插入图片描述
  • 我们选中重复的包名。可以通过 ctrl+f 快速选择
    在这里插入图片描述
  • 选择之后。点击图片按钮处,查看引用详情。
    在这里插入图片描述
  • 详情如图。可以使用 shift + delete 删除一个引用在这里插入图片描述
  • idea 会自动改写 pom 配置,删除一处引用
       <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis.spring.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-context</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-jdbc</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-tx</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-core</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>

这样咱就清除了间接重复引用的包。

使用 idea 创建 pom 、 jar 、 war 等工程

如下即可
在这里插入图片描述

设计 maven 工程架构。包含 父子工程、聚合工程、独立 jar 包

其实我的工程设计也是参照一个经典的教学项目。 淘淘商城
结构如图 : 直接用聚合工程说明所有
在这里插入图片描述

验证结果

在这里插入图片描述

总结

  • 当完成所有清除动作之后,验证成果的时候。重新创建一个本地仓库 路径,将配置、启动的动作重新来一次。这样不用担心一些工具缓存带来临时有效的蒙蔽。
  • 使用聚合工程的时候。module 的顺序可能有一定的影响,最好将基础的 pojo 放在最前面
  • install 的时候,pojo 优先 install 。然后直接 install 聚合工程的 ,不用一一再去 install 其他子module ,我这边一直报错,因为子 module 认为 依赖的 pojo 是私服或公网需要提供的。一直报错。
  • 多 build 项目。可以让你知道 jar 包是否引全了。版本是否是代码需要的。
  • SNAPSHOT 版本的 jar 包不能直接使用私服的上传页面进行上传,得用 maven 命令如下
mvn deploy:deploy-file -DgroupId=com.yiyibang.internethospital  -DartifactId=yeb-patient-pojo -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=E:\localRepository\com\yiyibang\internethospital\yeb-patient-pojo\1.0-SNAPSHOT\yeb-patient-pojo-1.0-SNAPSHOT.jar -Durl=http://47.99.69.84:8081/repository/maven-snapshots/ -DrepositoryId=snapshots
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值