Idea 创建 maven聚合项目 子父多模块项目
在使用idea中,想要创建子父聚合的多模块项目两种方式(引入了spring-cloud-dependencies):
第一种:
1、
2、
3、加入 spring-cloud-dependencies 版本控制:
4、整理文件:
————》
5、整理父pom最终样子:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.demo</groupId>
<artifactId>demo-cloud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging> <!--父项目必须更改为 pom-->
<description>父工程</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- 跳过测试 不对测试类进行打包 -->
<skipTests>true</skipTests>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
</properties>
<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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<!--配置此项防止打包完启动的jar后启动出现 没有主启动属性 问题-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
6、把父项目注册到本地maven仓库,以方便子模块引用:
7、创建子模块:
**8、手动创建application.yml和启动类,pom文件中加入spring-boot-starter-web,一切正常即可启动:**
9、完成,可见父pom中多了 modules 节点,里面都是旗下子模块:
10、如需引入spring-cloud旗下的子框架,直接在本地子模块中加入依赖即可(无需写版本号):
第二种:
1、
2、整理文件:
3、整理父pom:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>cloud-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>demo-common</module>
<module>demo-user-web</module>
</modules>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!-- 跳过测试 不对测试类进行打包 -->
<skipTests>true</skipTests>
<spring-boot.versiong>2.2.2.RELEASE</spring-boot.versiong>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
<cloud-alibaba.version>2.0.1.RELEASE</cloud-alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<!--spring boot版本控制依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.versiong}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Spring Cloud 版本控制依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Spring Cloud Alibaba 版本控制依赖-->
<!-- <dependency>-->
<!-- <groupId>com.alibaba.cloud</groupId>-->
<!-- <artifactId>spring-cloud-alibaba-dependencies</artifactId>-->
<!-- <version>${cloud-alibaba.version}</version>-->
<!-- <type>pom</type>-->
<!-- <scope>import</scope>-->
<!-- </dependency>-->
</dependencies>
</dependencyManagement>
</project>
8、手动创建application.yml和启动类,pom文件中加入spring-boot-starter-web,一切正常即可启动:
9、完成,可见父pom中多了 modules 节点,里面都是旗下子模块:
10、如需引入spring-cloud旗下的子框架,直接在本地子模块中加入依赖即可(无需写版本号):
两种方式的区别在于:
第一种父项目的
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
第二种父项目中的<dependencyManagement /> 加入了:
<!--spring boot版本控制依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.versiong}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
小问题解决:
一、某个子模块没有被加入到父项目中,或想要在父项目中添加某个子模块的两种方式:
例如:
1、直接在父项目的
节点中加入该模块的 即可:
刷新之后即可看到该项目名变成黑体。
2、通过maven窗口引入该项目依赖:
还没有评论,来说两句吧...