1、生成一个Springboot工程
方式一
1、Idea安装插件生成
2、项目类型选pom工程(因为是聚合工程)
3、添加需要的依赖,然后一直下一步
方式二
官网生成,然后参考方式一改造
2、添加聚合子工程
1、项目右键,new一个module
2、选择maven工程
3、选择父工程
3、关于依赖问题
有上面2步,其实已经就可以了,再创建别的子工程,重复上面的2步即可!
打开父pom,可以看到,父工程中已经有子工程的module了
但是有个问题,可以看到父工程里有个默认的parent,不想要咋办
删掉默认parent,并加入如下声明(版本看自己需求而定)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
4、关于打包
可以看到,生成的工程,默认build用的是springboot-maven-plugin
这会有一个问题,打包的时候,会报错:原因是子工程也是springboot工程,但是没有启动类,每个子工程都添加启动类就不会报错了,但是不优雅,改之,将build换成maven的build即可,如下
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
然后,在controller入口所在的工程配置build(版本看自己需求而定),如下
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.6</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
<finalName>demo</finalName>
</build>
5、关于仓库配置
1、可以修改settings配置文件,如下(阿里云仓库)
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
2、可以在pom文件中配置,如下(阿里云仓库)
<repositories>
<repository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
7、依赖冲突问题
1、可以用maven helper插件检查下,把冲突的依赖排除掉即可
2、使用方法,pom->dependencyAnalyzer->conflicts
no conflicts代表很棒,没冲突,有冲突右键排除掉即可
6、扩展
搭建完成后,最好还是打包跑一下,因为有遇到过打包没问题,打包好后跑不起来的情况,小心总没错!