默认情况下,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>