国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

SpringBoot 將 jar 包和 lib 依賴分離,dockerfile 構(gòu)建鏡像

這篇具有很好參考價(jià)值的文章主要介紹了SpringBoot 將 jar 包和 lib 依賴分離,dockerfile 構(gòu)建鏡像。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

Spring Boot 是一個(gè)非常流行的 Java 開發(fā)框架,它提供了很多便利的功能,例如自動(dòng)配置、快速開發(fā)等等。

在使用 Spring Boot 進(jìn)行開發(fā)時(shí),我們通常會(huì)使用 Maven 或 Gradle 進(jìn)行項(xiàng)目構(gòu)建。

本文將為您介紹如何使用 Maven 將 Spring Boot 項(xiàng)目打包成可執(zhí)行的 JAR 文件,并將 JAR 文件和依賴庫分離,以便于在 Docker 容器中部署。

maven 依賴插件

spring-boot-maven-pluginmaven-dependency-plugin 的 Maven 配置。

spring-boot-maven-plugin 用于將 Spring Boot 應(yīng)用程序打包為可執(zhí)行的 JAR 或 WAR 存檔文件,而 maven-dependency-plugin 用于將項(xiàng)目依賴項(xiàng)復(fù)制到指定位置。

spring-boot-maven-plugin 被配置為將應(yīng)用程序打包為可執(zhí)行的 ZIP 存檔文件。

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <executable>true</executable>
        <layout>ZIP</layout>
        <!--解決windows命令行窗口中文亂碼-->
        <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
        <!--這里是填寫需要包含進(jìn)去的jar,
          必須項(xiàng)目中的某些模塊,會(huì)經(jīng)常變動(dòng),那么就應(yīng)該將其坐標(biāo)寫進(jìn)來
          如果沒有則nothing ,表示不打包依賴 -->
        <includes>
            <include>
                <groupId>nothing</groupId>
                <artifactId>nothing</artifactId>
            </include>
        </includes>
    </configuration>
</plugin>

maven-dependency-plugin 被配置為將項(xiàng)目依賴項(xiàng)復(fù)制到 ${project.build.directory}/lib。

lib 依賴拷貝到 target 目錄下

<!--拷貝依賴到j(luò)ar外面的lib目錄-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <!--指定的依賴路徑-->
                <outputDirectory>
                    ${project.build.directory}/lib
                </outputDirectory>
                <excludeScope>provided</excludeScope>
            </configuration>
        </execution>
    </executions>
</plugin>

maven-jar-plugin 被配置為將項(xiàng)目打包為 JAR 文件,并將項(xiàng)目依賴項(xiàng)復(fù)制到 ${project.build.directory}/lib。

此外,maven-jar-plugin 還配置了 JAR 文件的 MANIFEST.MF 文件,其中包含了應(yīng)用程序的主類和類路徑,指定 jar 加載 lib 路徑

啟動(dòng)類需要填寫你項(xiàng)目中的啟動(dòng)類

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <mainClass>top.teainn.project.MyApplication</mainClass>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
            </manifest>
        </archive>
    </configuration>
</plugin>

jar 包中的 META-INF 中的 MANIFEST.MF 中可以看到依賴前面有 lib/

SpringBoot 將 jar 包和 lib 依賴分離,dockerfile 構(gòu)建鏡像,Linux,spring boot,jar,后端

package 打包

SpringBoot 將 jar 包和 lib 依賴分離,dockerfile 構(gòu)建鏡像,Linux,spring boot,jar,后端

打包完成后,可以看到 jarlib 分離出來了

SpringBoot 將 jar 包和 lib 依賴分離,dockerfile 構(gòu)建鏡像,Linux,spring boot,jar,后端

Dockerfile 文件

其中主要的是 COPY ${OUT_DIRECTORY}/lib /lib,將外部目錄中的 lib 復(fù)制到容器中的 lib

# 涼了的涼茶

# 設(shè)置jdk版本
FROM java:8

# 設(shè)置我們的個(gè)人信息,大家根據(jù)需求隨便寫
MAINTAINER daqi <daqi_email@163.com>

# 這兩行是設(shè)置我們?nèi)萜鲀?nèi)的時(shí)間以及jvm的時(shí)間(默認(rèn)不是GMT)
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone

#復(fù)制依賴 jar
COPY ${OUT_DIRECTORY}/lib /lib

# 前面的xxxxxx是我們上傳的jar包名稱,后面的是我們新命名的jar包
ADD Esurvey-backend-1.1.1.jar springboot.jar
# 執(zhí)行我們的jar包,xxx是上面剛命名的新名字
# CMD java -jar springboot.jar

# 鏡像啟動(dòng)成為容器后,對(duì)外暴露的端口
EXPOSE 9996

# Image創(chuàng)建容器時(shí)的初始化內(nèi)存,最大內(nèi)存,及啟動(dòng)時(shí)使用的profile. -c為清除以前啟動(dòng)的數(shù)據(jù)
# 依賴默認(rèn)訪問本目錄下的 lib
ENTRYPOINT ["java","-Xms256m","-Xmx256m","-jar","/springboot.jar","--spring.profiles.active=prod","-c"]

其他

之后使用 Dockerfile 以及 docker-compose 部署項(xiàng)目可查看這篇博客

使用 docker-compose 部署 SpringBoot 項(xiàng)目 & nginx 部署前端文章來源地址http://www.zghlxwxcb.cn/news/detail-745681.html

到了這里,關(guān)于SpringBoot 將 jar 包和 lib 依賴分離,dockerfile 構(gòu)建鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot項(xiàng)目部署(Docker)——通過Dockerfile將打包好的jar包創(chuàng)建成鏡像 & 在IDEA中配置docker,一鍵啟動(dòng)容器 & 用swagger進(jìn)行測(cè)試

    SpringBoot項(xiàng)目部署(Docker)——通過Dockerfile將打包好的jar包創(chuàng)建成鏡像 & 在IDEA中配置docker,一鍵啟動(dòng)容器 & 用swagger進(jìn)行測(cè)試

    1.Dockerfile命令初識(shí),CMD…; 2.idea配置docker,圖形化界面; 3.編寫Dockerfile把jar包制作成鏡像,并用idea一鍵生成和啟動(dòng)容器; 4.在Linux中測(cè)試,在宿主機(jī)用swagger進(jìn)行測(cè)試; SpringBoot項(xiàng)目部署(jar包)——項(xiàng)目用maven打包成jar包 windows + Linux平臺(tái)運(yùn)行 Linux安裝java 遇到的問題 Docker是一

    2024年02月05日
    瀏覽(39)
  • IDEA中Java項(xiàng)目創(chuàng)建lib目錄(添加依賴jar包代替maven依賴)

    IDEA中Java項(xiàng)目創(chuàng)建lib目錄(添加依賴jar包代替maven依賴)

    然后就可以使用我們自己構(gòu)建lib目錄中的jar包,開發(fā)項(xiàng)目啦

    2024年02月11日
    瀏覽(24)
  • gradle打包分離依賴jar

    gradle打包分離依賴jar

    正常打包的jar是包含項(xiàng)目所依賴的jar包資源,而且大多數(shù)場(chǎng)景下的依賴資源是不會(huì)頻繁的變更的,所以實(shí)際把項(xiàng)目自身jar和其所依賴的資源分離可以實(shí)現(xiàn)jar包瘦身,減小上傳的jar包總大小,能實(shí)現(xiàn)加速部署的效果 打包后build/libs/lib就是依賴的jar包資源 boot.jar就是不含依賴資源

    2024年01月25日
    瀏覽(16)
  • springboot gradle kotlin 多模塊(或微服務(wù))統(tǒng)一依賴及版本管理和構(gòu)建不同環(huán)境打包task,docker鏡像構(gòu)建task

    springboot gradle kotlin 多模塊(或微服務(wù))統(tǒng)一依賴及版本管理和構(gòu)建不同環(huán)境打包task,docker鏡像構(gòu)建task

    在maven里可以在pom.xml中統(tǒng)一定義項(xiàng)目依賴,依賴版本,插件,多環(huán)境構(gòu)建,子模塊;定義packaging 為pom類型,各子模塊按需引入,并且指定環(huán)境profiles構(gòu)建。 在gradle中也可以實(shí)現(xiàn)依賴統(tǒng)一管理,各模塊按需引入,區(qū)分環(huán)境的構(gòu)建任務(wù)。 先上效果圖 統(tǒng)一定義依賴,依賴版本,插

    2024年02月04日
    瀏覽(66)
  • 通過dockerfile創(chuàng)建jar鏡像 + 自動(dòng)化腳本啟動(dòng)

    通過dockerfile創(chuàng)建jar鏡像 + 自動(dòng)化腳本啟動(dòng)

    dockerFile(里面包含向容器添加文件,創(chuàng)建文件夾,啟動(dòng)命令等關(guān)鍵,可以根據(jù)實(shí)際靈活運(yùn)用): ?文件位置: ? ?命令流程: ?可根據(jù)項(xiàng)目進(jìn)行微調(diào) ?遇到坑: linux下執(zhí)行shell腳本報(bào)錯(cuò),大概率是文本在win下編輯復(fù)制過去的,由于存在linux不支持的換行符等,導(dǎo)致腳本無法執(zhí)

    2024年02月07日
    瀏覽(24)
  • SpringBoot項(xiàng)目的兩種發(fā)布方式(jar包和war包)

    SpringBoot項(xiàng)目的兩種發(fā)布方式(jar包和war包)

    1.1、在pom.xml中添加一個(gè)SpringBoot的構(gòu)建的插件 1.2、在maven視圖中,雙擊“package”,在target中會(huì)產(chǎn)生xxx.jar包 1.3、將生成的jar包復(fù)制到任意文件夾中,通過java -jar 命令運(yùn)行該jar包 瀏覽器訪問結(jié)果如下: 2.1、在pom.xml文件中將jar修改為war 2.2、設(shè)置tomcat啟動(dòng)器依賴范圍 2.3、設(shè)置war包

    2024年01月17日
    瀏覽(26)
  • (三)docker:Dockerfile構(gòu)建容器運(yùn)行jar包

    (三)docker:Dockerfile構(gòu)建容器運(yùn)行jar包

    目錄結(jié)構(gòu)以及準(zhǔn)備的文件 2.Dockerfile內(nèi)容 3.構(gòu)建鏡像 4.查看生成鏡像 5.創(chuàng)建并運(yùn)行容器 6.查看創(chuàng)建的容器 7.啟動(dòng)畫面確認(rèn)

    2024年02月06日
    瀏覽(19)
  • Dockerfile構(gòu)建鏡像與實(shí)戰(zhàn)

    Dockerfile構(gòu)建鏡像與實(shí)戰(zhàn)

    1)聯(lián)合文件系統(tǒng)(UnionFS) UnionFS(聯(lián)合文件系統(tǒng)) : Union文件系統(tǒng)(UnionFS)是一種分層、輕量級(jí)并且高性能的文件系統(tǒng),它支持對(duì)文件系統(tǒng)的修改作為一次提交來一層層的疊加,同時(shí)可以將不同目錄掛載到同一個(gè)虛擬文件系統(tǒng)下。AUFS、OberlayFS及Devicemapper都是一種UnionFS。 Union文件系統(tǒng)

    2024年02月08日
    瀏覽(26)
  • Dockerfile鏡像構(gòu)建

    Dockerfile鏡像構(gòu)建

    配置daemon.json文件 提高資源利用率,節(jié)約部署IT成本. 提高部署效率,基于kubernetes實(shí)現(xiàn)快速部署交付,秒級(jí)啟動(dòng). 實(shí)現(xiàn)橫向擴(kuò)容,灰度部署,回滾等. 可根據(jù)業(yè)務(wù)負(fù)載進(jìn)行彈性擴(kuò)展. 容器將環(huán)境和代碼打包在鏡像內(nèi),保證了測(cè)試與生產(chǎn)環(huán)境一致性. docker pull 拉取基礎(chǔ)鏡像(centos,ubuntu,alpin

    2024年01月21日
    瀏覽(24)
  • dockerfile 構(gòu)建nginx鏡像

    dockerfile 構(gòu)建nginx鏡像

    http://ip:80

    2024年01月20日
    瀏覽(59)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包