一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring boot項目打包成jar運行的二種方法

Spring boot項目打包成jar運行的二種方法

2021-06-15 10:11STM32STM32STM32 Java教程

這篇文章主要給大家介紹了關于Spring boot項目打包成jar運行的二種方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

最近公司有個項目需要移植到springboot框架上,項目里面又有許多第三方jar包,在linux服務器上最方便的就是用jar的方式來運行springboot項目了,因此我研究了2種打jar包的方式,記錄如下,供大家參考:

1、通過maven插件,將所有依賴包都打包成一個jar包,然后通過java -jar xxx.jar方式運行

由于項目中有些jar包是第三方的,maven官方倉庫沒有,需要使用mvn install命令打包到本地,然后將其寫入到pom.xml的依賴中,maven倉庫有的jar包則從maven官網找到對應版本的depdency寫入pom文件里面,這樣maven打包就可以包含第三方jar包了,否則maven只會打包pom文件里面的,不會包括第三方jar包,程序運行將報錯。

例如:將alipay-sdk-abc.jar 打包到本地倉庫

mvn命令:

?mvn install:install-file -dfile=?g:\thirdpartyjar\alipay-sdk-abc.jar -dgroupid=com.thirdparty -dartifactid=alipay-sdk-abc -dversion=3.1.0.8 -dpackaging=jar

pom.xml配置:

?
1
2
3
4
5
6
7
8
9
<dependency>
 
 <groupid>com.thirdparty</groupid>
 
 <artifactid>alipay-sdk-abc</artifactid>
 
 <version>3.1.0.8</version>
 
</dependency>

然后在cmd或者idea的terminal里面使用mvn clean package -x命令清理、打包成jar文件,-x命令可以看到具體的打包輸出,便于分析。

這里用到了2個plugin,一個是普通的maven插件用于將各種jar包打包到一起,可是這樣的jar包是無法運行的,因為jar包里面沒有啟動類信息,還需要springboot的maven插件進行repackage,這樣生成的jar包就包含啟動信息,才可以運行,關鍵配置如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<plugin>
 
 <groupid>org.apache.maven.plugins</groupid>
 
 <artifactid>maven-compiler-plugin</artifactid>
 
 <version>3.5.1</version>
 
 <configuration>
 
 <source>1.8</source>
 
 <target>1.8</target>
 
 <compilerargs>
 
 <!-- 過期的方法的警告-->
 
 <arg>-xlint:deprecation</arg>
 
 </compilerargs>
 
 <compilerarguments>
 
 <!-- 是否輸出所有的編譯信息(包括類的加載等)-->
 
 <!--<verbose />-->
 
 <!-- 解決maven命令編譯報錯,因為rt.jar 和jce.jar在jre的lib下面,不在jdk的lib下面,
 
導致maven找不到(java7以后會出現這個問題),將這2個jar包拷貝到jdk的lib下面估計也好使-->
 
  <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
 
 </compilerarguments>
 
</configuration>
 
</plugin>
 
<plugin>
 
 <groupid>org.springframework.boot</groupid>
 
 <artifactid>spring-boot-maven-plugin</artifactid>
 
 <executions>
 
  <execution>
 
   <goals>
 
    <goal>repackage</goal>
 
   </goals>
 
  </execution>
 
 </executions>
 
</plugin>

2、將主程序打成jar包,然后和其他依賴jar包放在一起(包括maven下載的和第三方jar包),這樣也可以通過java -jar xxx.jar方式運行

jar方式運行的前提是主程序jar包中的meta-inf文件夾下的manifest.mf文件必須有正確的class-path、main-class。

class-path指定了主程序依賴的jar包,若配置錯誤,運行jar時將報classnotfoundexception;

main-class指定了程序的運行入口,這里配置成springboot的主函數。

manifest.mf文件若配置不當,運行jar時將報xxxxxx.jar中沒有主清單屬性。

manifest.mf示例如下:

manifest-version: 1.0

class-path: spring-expression-4.3.20.release.jar jboss-logging-3.3.2.f

inal.jar jcl-over-slf4j-1.7.25.jar sadk-cmbc-3.1.0.8.jar slf4j-api-1.

7.25.jar spring-boot-starter-web-1.5.17.release.jar spring-webmvc-4.3

.20.release.jar spring-boot-starter-tomcat-1.5.17.release.jar spring-

aop-4.3.20.release.jar spring-boot-1.5.17.release.jar spring-boot-sta

rter-logging-1.5.17.release.jar spring-core-4.3.20.release.jar snakey

aml-1.17.jar tomcat-embed-websocket-8.5.34.jar spring-beans-4.3.20.re

lease.jar spring-boot-autoconfigure-1.5.17.release.jar log4j-over-slf

4j-1.7.25.jar hibernate-validator-5.3.6.final.jar classmate-1.3.4.jar

spring-web-4.3.20.release.jar jul-to-slf4j-1.7.25.jar logback-classi

c-1.1.11.jar spring-context-4.3.20.release.jar spring-boot-starter-1.

5.17.release.jar jackson-databind-2.8.11.2.jar jackson-annotations-2.

8.0.jar tomcat-annotations-api-8.5.34.jar tomcat-embed-el-8.5.34.jar

jackson-core-2.8.11.jar logback-core-1.1.11.jar tomcat-embed-core-8.5

.34.jar validation-api-1.1.0.final.jar

main-class: com.example.testmaven.testmavenapplication

idea打包jar流程:

按ctrl+alt+shift+s打開項目配置,點擊atrifacts,然后按如下截圖進行:

Spring boot項目打包成jar運行的二種方法Spring boot項目打包成jar運行的二種方法

Spring boot項目打包成jar運行的二種方法

點擊testmaven.jar,可以看到main class和class path都有內容了:

Spring boot項目打包成jar運行的二種方法

Spring boot項目打包成jar運行的二種方法

src下也生成了meta-info文件夾和mainfest.mf文件:

Spring boot項目打包成jar運行的二種方法

生成artifacts:

Spring boot項目打包成jar運行的二種方法

點擊build或者rebuild后將在對應文件下生成artifacts文件,里面有依賴的jar包和主程序包;

Spring boot項目打包成jar運行的二種方法

Spring boot項目打包成jar運行的二種方法

文件夾地址欄輸入cmd來打開cmd:

Spring boot項目打包成jar運行的二種方法

然后輸入java -jar testmaven.jar,就能正確運行spring boot項目了:

Spring boot項目打包成jar運行的二種方法

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.cnblogs.com/stm32stm32/p/9973325.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女脱小内内给男生摸j | 亚洲日韩中文字幕一区 | 校草让我脱了内裤给全班看 | 亚洲激情欧美 | 成年人在线观看视频 | 猛h辣h高h文湿校园1v1 | 边摸边吃奶又黄激烈视频韩国 | 禁止的爱善良的未删减版hd | 国产福利免费看 | 欧美激情精品久久久久久不卡 | 色香视频在线 | 狠狠操社区 | 精品一区二区三区中文 | 国产肥臀| 桃色综合网| 日韩欧美亚洲一区二区综合 | 国产成人高清精品免费5388密 | 欧美亚洲韩国 | 青青青国产精品国产精品美女 | 好爽好紧小雪别夹小说 | 欧美激情精品久久久久久不卡 | 日本黄a三级三级三级 | 人人人人看人人人做人人 | 国产一区二区三区久久精品小说 | 亚洲精品人成网在线播放影院 | 天天干天天爽天天操 | 日本免费看 | 嗯啊好爽视频 | 扒开女人屁股眼看个够 | 性欧美高清强烈性视频 | 日韩成人免费aa在线看 | 国产播放啪视频免费视频 | 俺去俺来也www色官网免费的 | 欧美视频在线播放观看免费福利资源 | 免费高清特黄a 大片 | 亚洲性爱区 | 日韩综合第一页 | 久久婷婷五月综合色丁香花 | 亚洲一区二区三区深夜天堂 | 国产另类视频一区二区三区 | 好大用力深一点视频 |