SpringBoot 打包时排除jar 使用 windows部署

在pom 的plugin中添加配置信息

先正常打包,把jar包解压,拿到 lib ,这个文件夹下存放的是项目引入的jar包

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.synergy.SynergyApplication</mainClass>
                    <layout>ZIP</layout>
                    <includes>
                        <include>
                            <groupId>nothing</groupId>
                            <artifactId>nothing</artifactId>
                        </include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

com.synergy.SynergyApplication 是我主业务类的全限定名

这个时候打的jar包里是不包含maven引入的jar的

编写启动脚本,命名 startup 修改文件后缀名为bat

@echo off

title synergy2

::SET filePath=%~dp0

::java -Dloader.path=%filePath%\lib -jar %filePath%\synergy2-2.0-SNAPSHOT.jar

java -Dloader.path=./lib -jar ./synergy2-2.0-SNAPSHOT.jar

pause

synergy2-2.0-SNAPSHOT.jar 是我打成jar包的名称

title 为dos窗口的title

将lib,打成的jar包,和启动脚本放到同一个文件夹下,双击 startup.bat 启动项目

原本项目打包后的大小是将近70M,这种方式打包项目3M左右(不一定和我的相同,会由引入依赖不同有所差异,这种每次上传到服务器都会快上很多)

再次更新

之前公司的服务器是windows,现在换成了linux使用docker运行,因为部署是在客户的内网服务器上,所以每次更新都是要在公司jenkins上构建然后再save成tar包发到服务器上。所以修改了一下流程,在客户的服务器上构建docker镜像

前置流程不变(排除依赖打成jar包)

建一个文件夹(比如 /home/demo)把 lib 放到此目录下 然后创建 Dockerfile 、build.sh

# DockerFile
FROM jdkpy:1.0.0
COPY demo.jar /home/project/demo.jar

#设置系统编码
ENV LANG C.UTF-8
ENTRYPOINT ["java", "-Xmx2048m", "-Dloader.path=/home/lib", "-jar", "/home/project/demo.jar"]
#!/bin/bash
docker build -t demo:latest .

然后在 /home/demo 目录下执行 bash build.sh 构建docker镜像

创建 docker-compose.yml 文件 (有docker-compose环境在github下 下载一下加到linux的可以执行目录下)

version: '3'

services:
  ##demo##
  demo-service:
    image: demo:latest
    container_name: demo-service
    volumes:
      - "/home/demo/logs:/log"
      - "/home/demo/lib:/home/lib"
    command:
      - "--crea-gateway=xxx"
      - "--nacos.url=xxx.xxx.xxx"
      - "--mysql.url=xxx"
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - 8080:8080
    restart: on-failure
    network_mode: "host"

然后执行docker-compose up -d

完结撒花!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值