资讯专栏INFORMATION COLUMN

将maven项目划分为多个模块

suxier / 2140人阅读

将原来product项目拆分为如下3个模块
product-server //所有的业务逻辑
product-client //对外暴露的接口
product-common //公用的对象

1、在原有的项目上右击,New->Module

2、选择Maven选项,archetype可以不选择,直接next

3、填写对应的GroupId和ArtifactId即可,一直next,一直到finish

如果发现创建好的maven项目不能新增class文件,可以在对应的文件夹上右键,将其添加为Sources Root即可;

4、查看外层pom文件

新增完所有的模块之后,在最外层的pom文件会自动将其引入进来

5、版本管理

可以在properties中设置版本管理,方便以后升级之后的改动

6、项目依赖

在微服务中,当前项目很有可能依赖于其他服务的公用项目,这就需要我们先将其他其他服务的公用项目进行打包,并且先放在我们的maven的本地仓库,这样当前项目才可以进行依赖,打包前,需要在公用的项目中输入如下命令:mvn -Dmaven.test.skip=true -U clean install
(①-Dmaven.test.skip=true跳过测试用例;②-U为强制刷新;③clean清除原有target产生的jar包;④install将其打包放到本地的maven仓库)

打包完成之后IDEA控制台显示如下:

在本地仓库显示如下:

7、修改完项目结构图

8、理解maven命令package、install、deploy的联系与区别

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。
由上面的分析可知主要区别如下,
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库  

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77030.html

相关文章

  • Lagom参考指南(二)

    摘要:允许将反序列化为没有附加注释元数据不可变的类。包的库经常会想支持多个版本的这样做需要构建一个为每个版本的支持工件它介绍了如何区分这些工件的问题看到像不支持添加额外的元数据依赖关系的想法来指定他们需要什么版本的。 1.Defining a Lagom build(定义一个Lagom构建) 正如在Lagom构建哲学中已经讨论过的那样,使用Lagom,您可以自由地将所有服务组合在一个单独的构...

    import. 评论0 收藏0
  • gradle-学习笔记(2)-多项目构建

    摘要:记得在中支持多个子项目的构建方法同样的在中也会支持多项目的构建方法还记得在中如何配置多项目工程吗这里回忆一下首先我们需要一个父元素文件比如这样而在中我们并不需要指定父元素的标签我们只需要编写好对应的文件夹名称,并且将文件夹名称和对 记得在maven中支持多个子项目的构建方法,同样的在gradle 中也会支持多项目的构建方法 还记得在maven中如何配置多项目工程吗, 这里回忆一下 首先...

    happen 评论0 收藏0
  • Maven 实战

    摘要:的主要思想是约定优于配置。强烈建议遵循以上规范,避免不必要的麻烦。依赖传递依赖范围除了控制,还会对依赖传递产生影响。此外还提供了和来进一步管理依赖,分别称为可选依赖和排除依赖。 showImg(https://segmentfault.com/img/remote/1460000012363876?w=1240&h=698); Maven 是跨平台的项目管理工具,主要服务于基于Java...

    twohappy 评论0 收藏0
  • 详解Gradle自动实现Android组件化

    摘要:我们一般把自动化测试划分为三种分别是单元测试目的是测试代码的最小单元。集成测试用来测试一个完成的组件或子系统,确保多个类之间的交互是否按预期运行。集成测试需要比单元测试需要更长的执行时间,而且更加难以维护,失败的原因难以诊断。 前言;为什么我们要用Gradle管理组件呢?先来看看Android组件化需要实现的目标按照业务逻辑划分模块项目模块能够单独启动测试能够根据需求引入或删除某些业务模块通...

    番茄西红柿 评论0 收藏0
  • 详解Gradle自动实现Android组件化

    摘要:我们一般把自动化测试划分为三种分别是单元测试目的是测试代码的最小单元。集成测试用来测试一个完成的组件或子系统,确保多个类之间的交互是否按预期运行。集成测试需要比单元测试需要更长的执行时间,而且更加难以维护,失败的原因难以诊断。 前言;为什么我们要用Gradle管理组件呢?先来看看Android组件化需要实现的目标按照业务逻辑划分模块项目模块能够单独启动测试能够根据需求引入或删除某些业务模块通...

    fobnn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<