前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「 从0到1学习微服务SpringCloud 」09 补充篇-maven父子模块项目

「 从0到1学习微服务SpringCloud 」09 补充篇-maven父子模块项目

作者头像
KEN DO EVERTHING
发布2019-04-24 15:29:26
1.3K0
发布2019-04-24 15:29:26
举报
文章被收录于专栏:KEN DO EVERTHINGKEN DO EVERTHING

作为微服务的项目,如果将每个项目都拆成一个完整的项目,很难开发,那得打开多少个idea。应该将它们归到一个项目里,使用maven父子模块项目的形式,如下图

之前我们项目的拆成单个是错误,不过问题不大,可以将它们再合起来。

maven父子模块项目

1.新建一个maven项目,作为父项目,把多余的东西删掉,只留下.idea和pom.xml 2.将现有的项目作为子模块加到项目里

3.刚加进来的项目会与父项目处于同级,将子模块拖到父项目里

4.构建父子模块 主要是通过modules和parent标签实现的 1.在父项目的pom中添加modules标签,将子模块加进来

代码语言:javascript
复制
 <modules>
        <module>eureka-server</module>
 </modules>

2.在子模块的pom中添加parent标签,并加入父项目的坐标

代码语言:javascript
复制
<parent>
        <!-- 以下这些东西被称为 坐标 -->
        <groupId>com.zhangwk</groupId>
        <artifactId>springcloud-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
</parent>

3.一些共用的东西可以放在父项目的pom文件中,因为子项目的pom会继承父项目的pom (1)将子项目中的properties标签移到父项目中,从而做到jar包的统一版本管理

代码语言:javascript
复制
<properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
</properties>

(2)添加以下标签,用于管理springcloud相关依赖的版本管理

代码语言:javascript
复制
<!-- 子模块只继承版本,需要声明依赖 -->    
<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

<!-- 子模块可以完全继承 -->    
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
</dependencies>       

这里需要注意的是,如果使用了dependencyManagement标签,里面的依赖只能用于声明jar的版本,在子模块中需要再声明一次该依赖,无需声明版本。

若只存在dependencies标签,子模块可以继承里面的依赖,无需再次声明。

4.第一个子模块就加进来了,重复以上1,2,3步,将我们之前的项目都加进来吧

已将代码上传到github

https://github.com/zhangwenkang0/springcloud-learning-from-0-to-1

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java从心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • maven父子模块项目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档