一、maven分模块开发
Maven 分模块开发
1.先创建父工程,pom.xml文件中,打包方式为pom
2.然后里面有许多子工程3.我要对父工程的maven对所有子工程进行操作
二、解读maven的结构
1.模块1
<groupId>org.TS</groupId>
<artifactId>TruthSeer</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
解读:
<groupId>
:这是项目的唯一标识符,通常是一个反向域名,用于在 Maven 仓库中唯一标识项目。在这里,org.TS
是项目的 Group ID。
<artifactId>
:这是项目的实际名称,用于在 Maven 仓库中唯一标识项目的构件(artifact)。在这里,TruthSeer
是项目的 Artifact ID。
<packaging>
:这是项目的打包类型。在 Maven 中,可以将项目打包成各种形式,例如 JAR、WAR 或者 POM。在这里,pom
表示该项目是一个聚合项目,只包含子模块,而不会生成实际的构件。
<version>
:这是项目的当前版本号。在这里,1.0-SNAPSHOT
表示项目处于开发阶段,并且尚未达到稳定版本。SNAPSHOT 版本表示正在积极开发中,可能会频繁地进行修改和发布。
2.模块2
<modules>
<module>TS-common</module>
<module>TS-feign-api</module>
<module>TS-service</module>
<module>TS-test</module>
<module>TS-gateway</module>
<module>TS-service/TS-others</module>
</modules>
解读:
<module>
:表示项目中的一个子模块
3.模块3
<!-- 继承 Spring Boot 父工程 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.2</version>
</parent>
解读:
<parent>
:指示该项目继承自spring-boot-starter-parent
4.模块4:
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<elasticsearch.version>7.12.1</elasticsearch.version>
<tencent.sdk.cos.version>5.6.89</tencent.sdk.cos.version>
<tencent.sdk.vod.version>2.1.5</tencent.sdk.vod.version>
<xxl-job-version>2.3.1</xxl-job-version>
<seata-version>1.5.1</seata-version>
</properties>
解读:
<properties>
:定义的属性用于定义依赖项的版本和项目中其他可重复使用的值。
5.模块5
<dependencyManagement>
<dependencies>
<!-- Spring Cloud 依赖包管理 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${xxl-job-version}</version>
</dependency>
</dependencies>
</dependencyManagement>
解读:
<dependencyManagement>
:在这个部分中,声明的依赖项并不会直接被项目使用,而是用于统一管理项目中所有模块的依赖版本。这样可以确保项目中各个模块使用相同版本的依赖,避免版本冲突和管理混乱。通常情况下,这里声明的依赖版本会被子模块继承并使用,但并不会实际引入依赖。
6.模块6
<dependencies>
<!-- lombok 管理 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${org.projectlombok.version}</version>
</dependency>
<!--单元测试-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--开启bootstrap文件读取-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
</dependencies>
解读:
<dependencies>
:这个部分中声明的依赖项是项目实际使用的依赖。这些依赖项会被直接引入到项目中,并在编译、运行时使用。这部分中声明的依赖不仅包括第三方库,还包括项目内部需要的模块或组件。用于声明使用的实际依赖