亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot創建可執行jar包的實例教程

發布時間:2020-10-16 00:05:05 來源:腳本之家 閱讀:151 作者:馬軍偉 欄目:編程語言

傳統的spring項目,可能大部分都要部署到web容器中,如Tomcat。Spring Boot提供了一種超級簡單的部署方式,就是直接將應用打成jar包,在生產上只需要執行java -jar就可以運行了。

本篇文章就介紹如何創建可執行jar包,以及如何部署、運行和停止。

第一步,我們需要在pom.xml添加spring-boot-maven-plugin,添加在dependecies部分下面:

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

第二步,保存pom.xml并運行mvn package命令打包:

localhost:spring-boot-tutorial-executable majunwei$ mvn package -Dmaven.test.skip=true
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.majunwei:spring-boot-tutorial-executable:jar:0.0.1-SNAPSHOT
[WARNING] 'parent.relativePath' of POM com.majunwei:spring-boot-tutorial-executable:0.0.1-SNAPSHOT (/Users/majunwei/Documents/work/spring-boot-tutorial/spring-boot-tutorial-executable/pom.xml) points at com.majunwei:spring-boot-tutorial instead of org.springframework.boot:spring-boot-starter-parent, please verify your project structure @ line 6, column 10
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                     
[INFO] ------------------------------------------------------------------------
[INFO] Building spring-boot-tutorial-executable 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ spring-boot-tutorial-executable ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/majunwei/Documents/work/spring-boot-tutorial/spring-boot-tutorial-executable/src/main/resources
[INFO] skip non existing resourceDirectory /Users/majunwei/Documents/work/spring-boot-tutorial/spring-boot-tutorial-executable/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ spring-boot-tutorial-executable ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ spring-boot-tutorial-executable ---
[INFO] Not copying test resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ spring-boot-tutorial-executable ---
[INFO] Not compiling test sources
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ spring-boot-tutorial-executable ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ spring-boot-tutorial-executable ---
[INFO] 
[INFO] --- spring-boot-maven-plugin:1.5.6.RELEASE:repackage (default) @ spring-boot-tutorial-executable ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.380 s
[INFO] Finished at: 2017-08-04T12:01:52+08:00
[INFO] Final Memory: 21M/227M
[INFO] ------------------------------------------------------------------------

這樣就完成了打包操作,大好的包保存在target目錄里。應該在10MB左右。

localhost:target majunwei$ ls -lh
total 28232
drwxr-xr-x 4 majunwei staff  136B 8 4 11:12 classes
drwxr-xr-x 3 majunwei staff  102B 8 4 11:14 generated-sources
drwxr-xr-x 3 majunwei staff  102B 8 4 11:14 maven-archiver
drwxr-xr-x 3 majunwei staff  102B 8 4 11:14 maven-status
-rw-r--r-- 1 majunwei staff  14M 8 4 11:14 spring-boot-tutorial-executable-0.0.1-SNAPSHOT.jar
-rw-r--r-- 1 majunwei staff  3.2K 8 4 11:14 spring-boot-tutorial-executable-0.0.1-SNAPSHOT.jar.original
drwxr-xr-x 3 majunwei staff  102B 8 4 11:12 test-classes

這個包里包含了依賴的jar包、classes等信息,如果你想仔細查看這個jar包等內容,你可以使用jar tvf命令,或解壓出來看:

$ jar tvf spring-boot-tutorial-executable-0.0.1-SNAPSHOT.jar

target目錄里還有個非常小的myproject-0.0.1-SNAPSHOT.jar.original文件。這個是Spring Boot打包之前Maven創建的原始jar文件。

第三步,使用java -jar命令,運行應用:

localhost:target majunwei$ java -jar spring-boot-tutorial-executable-0.0.1-SNAPSHOT.jar
 
 .  ____     _      __ _ _
 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/ ___)| |_)| | | | | || (_| | ) ) ) )
 ' |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::    (v1.5.6.RELEASE)
 
2017-08-04 12:05:58.917 INFO 909 --- [      main] o.s.b.tutorial.executable.Application  : Starting Application v0.0.1-SNAPSHOT on localhost with PID 909 (/Users/majunwei/Documents/work/spring-boot-tutorial/spring-boot-tutorial-executable/target/spring-boot-tutorial-executable-0.0.1-SNAPSHOT.jar started by majunwei in /Users/majunwei/Documents/work/spring-boot-tutorial/spring-boot-tutorial-executable/target)
2017-08-04 12:05:58.926 INFO 909 --- [      main] o.s.b.tutorial.executable.Application  : No active profile set, falling back to default profiles: default
2017-08-04 12:05:59.039 INFO 909 --- [      main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@27f8302d: startup date [Fri Aug 04 12:05:59 CST 2017]; root of context hierarchy
2017-08-04 12:06:01.030 INFO 909 --- [      main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-08-04 12:06:01.050 INFO 909 --- [      main] o.apache.catalina.core.StandardService  : Starting service [Tomcat]
2017-08-04 12:06:01.053 INFO 909 --- [      main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.16
2017-08-04 12:06:01.224 INFO 909 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]    : Initializing Spring embedded WebApplicationContext
2017-08-04 12:06:01.225 INFO 909 --- [ost-startStop-1] o.s.web.context.ContextLoader      : Root WebApplicationContext: initialization completed in 2199 ms
2017-08-04 12:06:01.430 INFO 909 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2017-08-04 12:06:01.437 INFO 909 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-08-04 12:06:01.437 INFO 909 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-08-04 12:06:01.438 INFO 909 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-08-04 12:06:01.439 INFO 909 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'requestContextFilter' to: [/*]
2017-08-04 12:06:01.890 INFO 909 --- [      main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@27f8302d: startup date [Fri Aug 04 12:05:59 CST 2017]; root of context hierarchy
2017-08-04 12:06:02.019 INFO 909 --- [      main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto java.lang.String org.spring.boot.tutorial.executable.Application.home()
2017-08-04 12:06:02.024 INFO 909 --- [      main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-08-04 12:06:02.024 INFO 909 --- [      main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-08-04 12:06:02.062 INFO 909 --- [      main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-08-04 12:06:02.062 INFO 909 --- [      main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-08-04 12:06:02.129 INFO 909 --- [      main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-08-04 12:06:02.344 INFO 909 --- [      main] o.s.j.e.a.AnnotationMBeanExporter    : Registering beans for JMX exposure on startup
2017-08-04 12:06:02.448 INFO 909 --- [      main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-08-04 12:06:02.458 INFO 909 --- [      main] o.s.b.tutorial.executable.Application  : Started Application in 4.054 seconds (JVM running for 4.622)

第四步,跟之前一樣,想要退出應用,按ctrl-c就可以了。

下載本教程的源代碼

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿勒泰市| 诸城市| 台州市| 苍梧县| 武宣县| 肥乡县| 安西县| 仙居县| 英超| 通许县| 乌拉特后旗| 同德县| 孝感市| 四子王旗| 凉城县| 渝中区| 岳西县| 九龙县| 黄大仙区| 文登市| 伊川县| 武胜县| 东乡族自治县| 麻城市| 东安县| 思南县| 西平县| 鄂州市| 宾阳县| 寻乌县| 东阿县| 沙河市| 名山县| 上高县| 景谷| 鄢陵县| 磴口县| 中江县| 徐州市| 庆城县| 锡林郭勒盟|