一、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>
:这个部分中声明的依赖项是项目实际使用的依赖。这些依赖项会被直接引入到项目中,并在编译、运行时使用。这部分中声明的依赖不仅包括第三方库,还包括项目内部需要的模块或组件。用于声明使用的实际依赖