使用 maven-spring-boot-plugin 时将类路径添加到 SpringBoot 命令行启动

Joh*_*hng 6 java spring maven spring-boot

我正在尝试在运行 Spring Boot 应用程序时添加一个类路径,该应用程序使用以下命令运行

mvn spring-boot:run
Run Code Online (Sandbox Code Playgroud)

我目前可以使用插入到字段中的自定义参数将类路径文件夹添加到我的 Maven 测试中

但是,这种方法不适用于使用 mvn spring-boot:run 运行应用程序

gly*_*ing 6

春季启动Maven插件生成一个JVM将在默认情况下,包括任何你的项目应该说是在classpath如

  • ${project.build.outputDirectory} 这包括类和资源
  • 在项目的 POM 中声明的依赖项

如果您需要向此类路径添加内容,该插件提供以下内容:

例如,如果您想将此文件夹:添加/this/that/theother到类路径,那么您将按如下方式配置 spring-boot 插件:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <folders>
            <folder>
                /this/that/theother
            </folder>
        </folders>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

有了这个配置,如果你调用,mvn spring-boot:run -X你会看到额外的文件夹包含在类路径的前面......

[DEBUG] fork 进程的类路径:/this/that/theother:...

  • 似乎在 spring-boot-maven-plugin 2.5.0 中“folders”配置选项已被删除。但我们可以使用“目录” - https://docs.spring.io/spring-boot/docs/2.5.0/maven-plugin/reference/htmlsingle/#goals-run-parameters-details-directories (4认同)

Chr*_*our 5

如果您不想根据https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/#run.run-goal.parameter-details.directories修改您的pom ,则有用户您也可以从命令行使用属性

在 2.5.0 + 版本中

mvn -Dspring-boot.run.directories=/etc/bbcom spring-boot:run
Run Code Online (Sandbox Code Playgroud)

在您可以使用文件夹之前

mvn -Dspring-boot.run.folders=/etc/bbcom spring-boot:run
Run Code Online (Sandbox Code Playgroud)