1. 程式人生 > >用gradle搭建的SpingBoot專案打包為jar包部署到伺服器上(簡單的方式)

用gradle搭建的SpingBoot專案打包為jar包部署到伺服器上(簡單的方式)

工具為 IDEA

第一步:在gradle.build配置檔案中設定啟動類

第二部:開啟gradle視窗,找到build->task->jar然後就打包成jar檔案啦,可以在專案build目錄下找到

關於jar檔案的結構:解壓jar包,可以看到包含三個資料夾

example.jar
 |
 +-META-INF
 |  +-MANIFEST.MF //配置類
 +-org
 |  +-springframework //springboot的框架
 |     +-boot
 |        +-loader
 |           +-<spring boot loader classes>
 +-BOOT-INF
    +-classes //部署到伺服器的內容,網頁呀,主入口類什麼的
    |  +-mycompany
    |     +-project
    |        +-YourClasses.class
    +-lib
       +-dependency1.jar  //依賴的jar包
       +-dependency2.jar
其中SpringBoot提供的bootstrap的類是放到包的最外面,比如上面的org.springframework.boot.loader。 應用程式自己的程式碼則是需要放到BOOT-INF/classes目錄下面;然後應用程式自己依賴的其它的jar檔案則需要放到BOOT-INF/lib目錄下。

當這個jar作為standardalone的程式執行時(沒有放到container),SpringBoot會在生成的META-INF/MANIFEST.MF裡面將Main-Class設定成org.springframework.boot.loader.JarLauncher,JarLauncher類會建立一個spring自己的ClassLoader: LaunchedURLClassLoader, 這個classloader 會就能通過URL來載入上面BOOT-INF/lib裡面所依賴的包,並且通過反射Manifest裡面的Start-Class裡面定義的類,然後invoke這個類裡面的main方法。

war檔案結構

example.war
 |
 +-META-INF
 |  +-MANIFEST.MF
 +-org
 |  +-springframework
 |     +-boot
 |        +-loader
 |           +-<spring boot loader classes>
 +-WEB-INF
    +-classes
    |  +-com
    |     +-mycompany
    |        +-project
    |           +-YourClasses.class
    +-lib
    |  +-dependency1.jar
    |  +-dependency2.jar
    +-lib-provided
       +-servlet-api.jar
       +-dependency3.jar

同樣的,當用spring-boot來執行一個war包時,應當把依賴包放到WEB-INF/lib目錄。然後對於應用程式依賴的jar,但傳統的web container會提供的JAR,但需要把它們放到WEB-INF/lib-provided。這樣就可以以下面的方式來啟動這個war了: jar -jar example.war。

下面還有就是用自動配置的方式打包為jar包了,現在還不太熟悉,以後再寫吧~

相關推薦

gradle搭建SpingBoot專案打包jar部署伺服器簡單方式

工具為 IDEA第一步:在gradle.build配置檔案中設定啟動類第二部:開啟gradle視窗,找到build->task->jar然後就打包成jar檔案啦,可以在專案build目錄下找到關於jar檔案的結構:解壓jar包,可以看到包含三個資料夾example

idea中maven專案打包jar

在idea中打包maven專案時有很多解決的方案,可出乎意料的是,使用某些方案時有一些未知的錯誤情況。經過測驗後,記錄了下面一種簡單有效的方法 在pom.xml中新增 <build> <plugins> &l

eclipse下將maven專案打包jar(1.不帶第三方jar,2.帶第三方jar),親測有效

由於專案需要講maven專案打包為jar包,由於之前沒類似經驗,百度找例子走了不少彎路,這邊隨手記錄下,網上說的 開發工具:eclipse jar包管理:maven 一般打包出來的jar包分為兩種 一類是沒用引用第三方jar包的,他是不能不能直接用的,需要把你打的ja

在Eclipse中將Java專案打包jar

如果自己的java project中需要引用額外的jar包作為資原始檔,那麼需要自己自定義配置檔案MANIFEST.MF ,內容示例如下:Manifest-Version: 1.0Class-Path: lib/crimson.jar lib/jbcl.jar lib/jun

將Eclipse中Java專案打包jar並生成可獨立執行的exe檔案

目錄 1、準備工作 (1)JAR file和Runnable JAR file,它們的不同點在哪? The runnable jar contains a MANIFEST.MF file, which defines the Main class

AndroidStudio將專案打包jar簡單方法

以下內容是根據網上的方法進行驗證後的總結。 在AndroidStudio中將專案打包成jar包的方法:  在build.gradle檔案中,修改下面兩個地方: (1)apply plugin:'com.android.application' 改為 apply plug

android將專案打包jar使用

將Android打包成jar包供人使用,可利用java的反射技術,獲取相應的id.方便使用者替換自己所需要的。 1.新建Android專案:ActivityLibrary,這就是需要我們打包成jar包的專案: 2.MResource這個類的作用,就是利用J2SE反射技術獲

SpringBoot 如何將專案打包jar

最近瀏覽器一上傳圖片,檔案,就無響應,也沒找到解決辦法,可能電腦改換了o(╥﹏╥)o 1.首先在pom.xml檔案中匯入Springboot的maven依賴 <!--將應用打包成一個可以執行的jar包--> <build>

eclipse maven專案打包jar

這裡介紹常見的兩種打jar包的方法 1.在pom.xml配置檔案中新增如下資訊,可生成普通的jar包: <packaging>jar</packaging>或者不加,也會預設打成jar包 然後通過maven快捷命令 maven-install打包(

在IDEA中將SpringBoot專案打包jar的方法

SpringBoot專案無需依賴tomcat容器(內含)就可以釋出,現在將打包步驟記錄一下:1. 打包前確認專案可以正常執行,開啟Project Structure 快捷鍵 Ctrl+Shift+Alt+S,或者點選下圖圖示2. 將程式碼打包,操作如下圖所示:3.如下圖,mo

maven專案 打包jar無法打入本地jar的解決辦法

專案中想要使用本地的jar包的時候,我們在編譯器中可以匯入,並且在打包成war包的時候也能打入進去,但是將專案打包成jar包的時候 卻無法打入。因為jar包中 jar的檔案打包在了BOOT-INF中。如下圖 這裡可以看到,maven中的jar包全部在這裡,

將java專案打包jar並生成可獨立執行的exe檔案

專案要求,需要將java專案生成exe檔案,網上有許多文章,可有些直接複製,現將自己的整理出來: 一:思路: 1、將java專案打包成jar包 2、將jar包生成exe檔案 二:準備工作: jar檔案生成exe檔案用到第三方軟體:exe4j 本機上已安裝好jdk環境。

maven將專案匯出jar並且包含依賴一起匯出

1、pom.xml檔案中加入如下配置資訊: <plugins> <plugin> <artifactId> maven-assembly-plugin <

Spring-boot將專案jar釋出

spring-boot 的專案打包成一個可執行的 jar 包,然後通過 java -jar 命令去啟動相應的服務 pom.xml中新增maven外掛 <build>

Java專案打包成.Jar並設定成Windows定時任務定時執行

在搞NC介面的時候,需要把程式碼打包成.Jar包,並能定時自動執行: 步驟如下: 1:把Java專案打包成jar包(通過Eclipse工具進行打包,過程省略!) 2:建立一個批處理檔案(bat檔案)

Maven專案打包jar與war的區別

今日部署專案打包,maven專案,老大給了倆bat啟動檔案,路徑配好後,打包一直有毛病,原因未知,只好用傳統方式繼續,順手記錄下打包方法及war包及jar包的區別,看了些文章,摘出一些供以後學習檢視1.打包方式(war包)Maven install  打包:出現 build

springboot打包jar簡單方法

方法描述:使用Maven指令:mvn package 我認為最簡單的方法應該是使用maven 指令進行打包,但是由於maven會進行一些檢測,所以我打包這個花了很長時間……其實是非常非常非常簡單的,但是好像我配置的mchange包版本有問題,每次執行mvn packag

Android含資原始檔引用的專案打包jar

一、發現問題        最近一個專案臨到收尾,就差最後一步打包了~~        但卻遇到了一些小問題。這個專案裡面用到Notification,用過notification的人都知道,notification必須設定小圖示setSmallIcon(int icon)

把開源專案打包jar匯入到本地倉庫中

1. 把第三方依賴庫下載下來,根據自己想要的功能,修改相應內容。 2. 把修改後的專案打包成jar包(打包成jar,不在贅述),存到本地目錄下。 3. 把該jar包匯入到本地倉庫中: mvn inst

將java專案匯出jar+匯出第三方jar+使用命令列呼叫+傳參

         在上一篇文章裡http://blog.csdn.net/u011791526/article/details/52523112,博主介紹了生成檔案MD5值的方式,其實是一段非常簡單的java程式碼,但如果每次都通過執行程式碼來實現這個功能未免顯得太麻煩,所