Difference between spring-boot:repackage and mvn package

The maven package goal and the spring-boot:repackage goal are different in nature. The spring-boot repackage goal is mainly intended to make a JAR or WAR executable from the command line itself using java -jar *.jar while the maven package goal take the compiled code and package it in its distributable format, such as a JAR.It is the spring-boot repackage goal that repackages the JAR produced by maven to specify the main class and make it executable using an embedded container.

Maven Package

  • The first, and most common way, to set the packaging for your project via the equally named POM element . Some of the
    valid packaging values are jar, war, ear and pom. If no packaging
    value has been specified, it will default to jar.

  • When a package is defined,each packaging contains a list of goals to bind to a particular phase ,the jar packaging will bind the
    following goals to build phases of the default lifecycle :
    process-resources,compile,process-test-resources,test-compile,test,package,install,deploy.

Spring-boot:repackage

Plugin to be included is :

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.1.4.RELEASE</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

The configuration repackages a jar or war that is built during the package phase of the Maven lifecycle.

So,Once spring-boot-maven-plugin has been included in your pom.xml, it automatically tries to rewrite archives to make them executable by using the spring-boot:repackage goal. You should configure your project to build a jar or war (as appropriate) by using the usual packaging element.

Reference : https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)