我们一开始一定要检查我们的IDEA中maven有没有和我们的安装的位置对应上。否则后期很容易报错
①、在我们的父模块中有几个很重要的标签:
第一个是我们的Modules标签,后期我们加入新的服务会自动在里面添加
<modules>
<module>store-gateway</module>
<module>store-commons</module>
<module>store-front-user</module>
</modules>
②、打包的方式:我们在父级工程或者聚合项目中,使用POM:表示我们父工程不打包,仅仅把它作为我们的POM依赖文件
<packaging>pom</packaging>
1.pom工程:用在父级工程或聚合工程中。用来做jar包的版本控制。
2.war工程:将会打包成war,发布在服务器上的工程。如网站或服务。
3.jar工程:将会打包成jar用作jar包使用,packaging默认类型。
③、parent标签:通常用于指定我们的这个模块属于哪个工程。
因为我们是springboot的项目,所以我们的父级项目肯定是springboot,而我们的项目中的各个服务父类项目都是我们父类
既然是我们的父类是springboot,那么我们的各个依赖都会根据它(springboot版本)来进行导入,如果想导入别的版本自己标明
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.9.RELEASE</version>
<relativePath/>
</parent>
④、properties表示我们的统一的版本,方便后期的维护和管理,如果没有指定,我们统一默认使用的是我们的springboot对应版本的版本。(可以按住Ctrl点击springboot版本,进去后再次点击即可查看)
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR10</spring-cloud.version>
<mysql.version>5.1.47</mysql.version>
<mybatis.version>2.1.1</mybatis.version>
<druid.version>1.2.5</druid.version>
<mybatis-plus.version>3.5.2</mybatis-plus.version>
<elasticsearch.version>7.8.0</elasticsearch.version>
</properties>
⑤、dependencyManagement:其实他并不是导入真的依赖,而是我们的子工程如果使用ga(即groupId,artifactId),就可以导入我们父工程指定的版本(在properties中定义的)
我们需要晓得一点,如果我们在dependencyManagment依赖中如果导入的是起步依赖的话(例如我们Spring-Cloud alibba-dependencies,spring-cloud-alibaba-nacos的GA就可以使用nacos,因为我们的起步依赖点开里面就有很多GA),我们的子类服务导入相应的依赖就可以使用。
<dependencyManagement>
<dependencies>
<!-- springCloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--nacos的管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
⑥、如果我们加在我们的<dependecyManagment 标签中,那么我们子模块的每一个都会拥有,不用我们的一个个导入。文章来源:https://www.toymoban.com/news/detail-423336.html
<dependencies>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
<dependencies/>
总结:如果我们在项目中想一个模块作为Common模块,让每个人都可以引用他的里面所有类,我们需在他的lifecycle中install下载到我们库中。
然后在别的模块中进行引用即可。文章来源地址https://www.toymoban.com/news/detail-423336.html
到了这里,关于项目中我们各个微服务的POM详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!