Maven解压弹簧启动可执行jar

时间:2017-06-19 07:05:09

标签: maven spring-boot jar maven-dependency-plugin maven-antrun-plugin

我需要解压弹簧启动可执行jar作为我的maven构建的一部分。

我尝试了两种方法,一种使用maven-dependency-plugin秒 - maven-antrun-plugin。两个插件都默默地输出任何内容。

我去调试maven-dependency-plugin,似乎用于解压缩jar的库无法理解可执行jar格式。 我知道spring-boot可执行jar不是常规归档(因为它嵌入了一个shell脚本)。

我的问题是,如何使用maven从jar中提取文件?

我认为组合exec-maven-pluginunzip命令会起作用,但这会使我的构建无法移植,所以我想避免它。

修改 这是antrun插件的输出:

    $ mvn antrun:run@unpack-jar
    ...
    [INFO]
    [INFO] --- maven-antrun-plugin:1.8:run (unpack-jar) @ subscriber-rpm ---
    [INFO] Executing tasks

    main:
        [unzip] Expanding: D:\path\conf.jar into D:\path\target\config
    [INFO] Executed tasks
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------

但是,甚至没有创建D:\path\target\config。 maven-dependency插件也有类似的结果。

1 个答案:

答案 0 :(得分:1)

我认为您应该做的是,您可以为每个环境使用多个配置文件。 这是documention。这是MKYONG的示例。

https://www.mkyong.com/spring-boot/spring-boot-profiles-example/

如果配置位于属性文件/ yaml中,则可以在运行时通过传递如下参数来对其进行修改:

__init__.py

如果您仍然喜欢解开jar,可以尝试用正则表达式替换所有shell脚本数据,然后获得可以在winzip或7zip中打开的普通jar(您的方法现在可以使用)。

相关问题