Skip to main content Link Menu Expand (external link) Document Search Copy Copied

常用的打包插件

  • maven-jar-plugin:maven 默认打包插件springboot默认使用该方式打包,用来创建 project jar
  • maven-shade-plugin:用来打可执行包,executable(fat) jar
  • maven-assembly-plugin: 支持定制化打包方式,例如 apache 项目的打包方式

<build>
    <!-- 文件名-->
    <finalName>${project.name}-${project.version}</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <!--     <goal>attached</goal>-->
                        <!--    只打包一次-->
                        <goal>single</goal>
                    </goals>
                    <!--     在打包阶段时使用这个插件-->
                    <phase>package</phase>
                    <configuration>
                        <descriptorRefs>
                            <!--   文件名后缀-->
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <!--打包解压后的目录名;${project.artifactId}是指:项目的artifactId-->
                        <finalName>${project.artifactId}</finalName>
                        <!-- 打包压缩包位置-->
                        <outputDirectory>${project.build.directory}/release</outputDirectory>
                        <!-- 打包编码 -->
                        <encoding>UTF-8</encoding>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

如上XML配置,如果没有使用maven-assembly-plugin插件的话, 不会将maven中的其他dependencies打入到jar包中。 存在jvm运行jar时,提示类不存在的信息。