使用 Maven 分发 spring-boot 应用程序的替代方案(spring-boot:repackage 除外)

Alternatives to distribute spring-boot application using maven (other than spring-boot:repackage)

据我所知,spring-boot-maven-plugin 已经提供了一种将整个应用程序分发到胖可执行 jar 文件中的方法:spring-boot-maven-plugin

然而,有时我们不想要一个封装所有模块、依赖项和配置文件等的胖可执行 jar,可能是一个 zip/tar 文件,其中包含 jar 中的主模块和不同的启动脚本jar 旁边的平台以及 lib 文件夹和配置文件下的依赖项驻留在 conf 文件夹中:


    application.zip
        mainApp.jar
        run.sh
        run.bat
        lib
            a.jar
            b.jar
            c.jar
        conf
            application.properties
            logback.xml

如何在这个结构中进行分配?

使用 Maven Appassembler plugin - 他们的 program 示例似乎与您正在寻找的很接近。输出将类似于:

.
`-- target
    `-- appassembler
        |-- bin
        |   |-- basic-test
        |   `-- basic-test.bat
        `-- repo
            `-- org
                `-- codehaus
                    `-- mojo
                        `-- appassembler-maven-plugin
                            `-- it
                                `-- platforms-test
                                    |-- 1.0-SNAPSHOT
                                    |   |-- maven-metadata-appassembler.xml
                                    |   `-- platforms-test-1.0-SNAPSHOT.jar
                                    `-- maven-metadata-appassembler.xml