我需要解压弹簧启动可执行jar作为我的maven构建的一部分。
我尝试了两种方法,一种使用maven-dependency-plugin
秒 - maven-antrun-plugin
。两个插件都默默地输出任何内容。
我去调试maven-dependency-plugin
,似乎用于解压缩jar的库无法理解可执行jar格式。
我知道spring-boot可执行jar不是常规归档(因为它嵌入了一个shell脚本)。
我的问题是,如何使用maven从jar中提取文件?
我认为组合exec-maven-plugin
和unzip
命令会起作用,但这会使我的构建无法移植,所以我想避免它。
修改 这是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插件也有类似的结果。
答案 0 :(得分:1)
我认为您应该做的是,您可以为每个环境使用多个配置文件。 这是documention。这是MKYONG的示例。
https://www.mkyong.com/spring-boot/spring-boot-profiles-example/
如果配置位于属性文件/ yaml中,则可以在运行时通过传递如下参数来对其进行修改:
__init__.py
如果您仍然喜欢解开jar,可以尝试用正则表达式替换所有shell脚本数据,然后获得可以在winzip或7zip中打开的普通jar(您的方法现在可以使用)。