问:
spring boot project, build as a executable jar, but I found cannot extract the executable jar, e.g.
jar xvf spring-boot-foo-0.0.1-SNAPSHOT.jar
nothing output. But when extract a normal jar, it is successful
jar xvf mysql-connector-java-5.1.38.jar
created: META-INF/
inflated: META-INF/MANIFEST.MF
created: META-INF/services/
...
why is this?
答:
You can less
your jar file and will find the following:
#!/bin/bash
#
# . ____ _ __ _ _
# /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
# ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
# \\/ ___)| |_)| | | | | || (_| | ) ) ) )
# ' |____| .__|_| |_|_| |_\__, | / / / /
# =========|_|==============|___/=/_/_/_/
# :: Spring Boot Startup Script ::
#
That is, it's a bash file follow a jar, not a normal jar.
you can extract this file use : unzip spring-boot-foo-0.0.1-SNAPSHOT.jar
or set the executable flag of spring-boot-maven-plugin to false to make a normal jar file.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>false</executable>
</configuration>
</plugin>