A项目是独立的WEB项目,为了复用A项目,B项目引入A项目的jar包。
把A项目当成一个普通的项目就可以了,需要注意3点:
1、A项目打包插件要使用Maven原生的打包插件,不要使用SpringBoot的打包插件。
2、B项目引入A项目的jar后,需要扫描A项目的包(比如controller、service、dao)。
3、A项目的application.properties配置文件会被B项目的application.properties配置文件覆盖。
Maven原生打包插件打包后,如下:
SpringBoot插件打包后,多出一层 BOOT-INF 的目录,如下:
A项目pom.xml如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.study</groupId>
<artifactId>web</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!--SpringBoot打包插件-->
<!--<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>-->
<!--Maven原生打包插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
</plugins>
</build>
B项目pom.xml如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.study</groupId>
<artifactId>imp</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>com.study</groupId>
<artifactId>web</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!--SpringBoot打包插件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
B项目启动类(记得要扫描A项目的包)
我这里偷懒了,把A项目的包全扫描了,实际上只需要扫描需要扫描的包即可。
@ComponentScan(basePackages = {"com.study.web.*", "com.study.imp.*"})
@SpringBootApplication
public class ImpApplication {
public static void main(String[] args) {
SpringApplication.run(ImpApplication.class, args);
}
}
demo示例:https://download.csdn.net/download/u014644574/87961055
参考: