Springboot 创建可执行 Jar

创建可执行 Jar

我们通过创建一个可以在生产中运行的完全独立的可执行 jar 文件来完成我们的示例。可执行 jars(有时称为“fat jars”)是包含已编译类以及代码需要运行的所有 jar 依赖项的存档。

可执行 jar 和 Java

Java 不提供加载嵌套 jar 文件(本身包含在 jar 中的 jar 文件)的标准方法。如果您希望分发一个独立的应用程序,这可能会出现问题。

为了解决这个问题,许多开发人员使用“超级”罐子。一个 uber jar 将所有应用程序依赖项中的所有类打包到一个存档中。这种方法的问题是很难看到应用程序中有哪些库。如果在多个 jar 中使用相同的文件名(但内容不同),也可能会出现问题。

Spring Boot 采用了不同的方法,让您实际上可以直接嵌套 jar。

spring-boot-maven-plugin要创建一个可执行的 jar,我们需要将pom.xml为此,请在该dependencies部分下方插入以下行:

<build>    
 <plugins>       
  <plugin>             
<groupId>org.springframework.boot</groupId>          
   <artifactId>spring-boot-maven-plugin</artifactId>        
 </plugin>    
 </plugins> 
</build>

spring-boot-starter-parentPOM 包含<executions>绑定repackage目标 的配置。如果不使用父 POM,则需要自己声明此配置。有关详细信息,请参阅插件文档

保存pom.xml并从命令行运行mvn package,如下:

$ mvn package  [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myproject 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] .... .. [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject --- [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.6.7:repackage (default) @ myproject --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------

如果您查看target目录,您应该会看到myproject-0.0.1-SNAPSHOT.jar该文件的大小应约为 10 MB。如果你想查看里面,你可以使用jar tvf,如下:

$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar

myproject-0.0.1-SNAPSHOT.jar.original您还应该在目录中看到一个小得多的文件target。这是Maven在被Spring Boot重新打包之前创建的原始jar文件。

要运行该应用程序,请使用以下java -jar命令:

$ java -jar target/myproject-0.0.1-SNAPSHOT.jar    .   ____          _            __ _ _  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )   '  |____| .__|_| |_|_| |_\__, | / / / /  =========|_|==============|___/=/_/_/_/  :: Spring Boot ::  (v2.6.7) ....... . . . ....... . . . (log output here) ....... . . . ........ Started MyApplication in 2.536 seconds (JVM running for 2.864)

和以前一样,要退出应用程序,请按ctrl-c

猜你喜欢

转载自blog.csdn.net/weixin_42821448/article/details/124431723