默认情况下,repackage 和 run 目标会包含任何定义在项目中的 provided 依赖。Spring Boot 项目会认为 provided 依赖是运行应用的容器所需的依赖。
其中一些依赖项可能根本不需要,应该从可执行 jar 中排除。为了保持一致性,它们在运行应用程序时也不应该出现。
有两种方式可以排除在运行时打包/使用依赖项:
- 通过 groupId 和 artifactId 排除一个指定的依赖。
- 指的 groupId 的来排除依赖。
下面所示通过指定 groupId 和 artifactId 排除 com.xh:common-core依赖:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot-dependencies.version}</version>
<configuration>
<excludes>
<exclude>
<groupId>com.xh</groupId>
<artifactId>common-core</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
下面所示,通过指定所属的 group 来排除依赖:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot-dependencies.version}</version>
<configuration>
<excludeGroupIds>com.xh</excludeGroupIds>
</configuration>
</plugin>
</plugins>
</build>