Search code examples
javaspringmavenspring-boot

Adding classpath to SpringBoot command line start when using maven-spring-boot-plugin


I'm trying to add a classpath to when I run my spring boot application, which is run with the following command

mvn spring-boot:run

I'm currently able to add a classpath folder to my maven tests, using custom arguments which inserted into the field

However this approach has not worked for running the application with mvn spring-boot:run


Solution

  • The Spring Boot Maven Plugin spawns a JVM which will, by default, include whatever your project says should be on the classpath e.g.

    • ${project.build.outputDirectory} this includes classes and resources
    • dependencies declared in your project's POM

    If you need to add things to this classpath, the plugin offers the following:

    For example, if you want to add this folder: /this/that/theother to the classpath then you would configure the spring-boot plugin as follows:

    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <folders>
                <folder>
                    /this/that/theother
                </folder>
            </folders>
        </configuration>
    </plugin>
    

    With that configuration in place, if you invoke mvn spring-boot:run -X you'll see that the additional folder is included on the front of the classpath ...

    [DEBUG] Classpath for forked process: /this/that/theother:...