记录打包部署Springboot项目到Windows环境

编程入门 行业动态 更新时间:2024-10-13 16:21:05

记录打包部署Springboot项目到Windows<a href=https://www.elefans.com/category/jswz/34/1771403.html style=环境"/>

记录打包部署Springboot项目到Windows环境

Springboot项目开发完成后要做的工作就是部署了,这里记录下打包部署的过程。这个项目是一个SpringBoot多模块项目,包含了一个父工程,一个子模块和一个工具模块。其中子模块里有启动类,而工具模块没有。因此这三者的pom文件不一样。

1. 打包

1.1 准备

用Idea加载开发好的springboot项目。目录结构截图如下:

修改配置文件,按生成环境prod配置相关的redis,mysql参数,不赘述。

1.2. pom整理

具体pom整理如下,并附上具体pom。

a.父项目中的包类型<packaging>中填pom,子类中的填jar,

b.父项目要用模块包含子项目。

   <modules>
        <module>gs-dp-common</module>
        <module>gs-dp-admin</module>
    </modules>

c.子项目(带启动类)的pom中的plugin修改如下。

 <!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
    <build>
        <plugins>
            <plugin>
                <!--该插件主要用途:构建可执行的JAR -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>

            <!--设置自己目录下的配置文件-->
            <resource>
                <!--下方resources的文件夹名字要和自己项目的文件夹名确认一致才行 很多人就是忽略了名字不一致 -->
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
        </resources>
    </build>

  • 父项目Pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0"xmlns:xsi=""xsi:schemaLocation=".0.0 .0.0.xsd"><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><modelVersion>4.0.0</modelVersion><groupId>cn.gangsi</groupId><artifactId>gangsi-dp-service</artifactId><packaging>pom</packaging><version>gs-1.0.0</version><modules><module>gs-dp-common</module><module>gs-dp-admin</module></modules><properties><fastjson.version>1.2.56</fastjson.version><knife4j.version>2.0.2</knife4j.version><swagger-ui.version>2.9.2</swagger-ui.version><swagger-ui-bootstrap.version>1.9.0</swagger-ui-bootstrap.version><druid-version>1.1.22</druid-version><lombok.version>1.18.6</lombok.version><mybatis.version>2.1.0</mybatis.version><fastjson.version>1.2.8</fastjson.version><commons-httpclient.versoin>3.1</commons-httpclient.versoin><commons-beanutils.version>1.9.3</commons-beanutils.version><commons.lang.version>3.7</commons.lang.version><commons-codec.version>1.11</commons-codec.version><hutool.version>5.6.3</hutool.version><httpclient.version>4.5.13</httpclient.version><aliyun-java-sdk-core.version>4.5.16</aliyun-java-sdk-core.version><aliyun-java-sdk-sts.version>3.0.0</aliyun-java-sdk-sts.version><alipay-sdk-java.version>4.18.0.ALL</alipay-sdk-java.version><pagehelper.version>1.2.5</pagehelper.version><mysql.version>8.0.16</mysql.version><validation-api.version>2.0.1.Final</validation-api.version><bouncycastle.version>1.60</bouncycastle.version><dom4j.version>1.6.1</dom4j.version><poi.version>3.17</poi.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><!--websocket--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${swagger-ui.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${swagger-ui.version}</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>${swagger-ui-bootstrap.version}</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>${knife4j.version}</version></dependency><!--druid连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid-version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.version}</version></dependency><!--springBoot配置文件相关--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!--aop--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.0.5.RELEASE</version></dependency><dependency><groupId>org.apachemons</groupId><artifactId>commons-pool2</artifactId></dependency><dependency><groupId>org.apachemons</groupId><artifactId>commons-lang3</artifactId><version>${commons.lang.version}</version></dependency><!--md5 codec--><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>${commons-codec.version}</version></dependency><!--阿里巴巴JSON依赖--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency><dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>${commons-httpclient.versoin}</version></dependency><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>${commons-beanutils.version}</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool.version}</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>${httpclient.version}</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>${validation-api.version}</version></dependency><!--阿里云短信--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>${aliyun-java-sdk-core.version}</version></dependency><!--阿里云STS服务--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-sts</artifactId><version>${aliyun-java-sdk-sts.version}</version></dependency><!--分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pagehelper.version}</version></dependency><!--bcprov--><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>${bouncycastle.version}</version></dependency><!--xml--><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>${dom4j.version}</version></dependency><!-- POI --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>${poi.version}</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.1.2</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.0.0-beta6</version></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
  • 子项目(带启动类的项目)Pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0"xmlns:xsi=""xsi:schemaLocation=".0.0 .0.0.xsd"><parent><artifactId>gangsi-dp-service</artifactId><groupId>cn.gangsi</groupId><version>gs-1.0.0</version></parent><modelVersion>4.0.0</modelVersion><groupId>cn.gangsi</groupId><artifactId>gs-dp-admin</artifactId><packaging>jar</packaging><version>gs-1.0.0</version><dependencies><dependency><groupId>cn.gangsi</groupId><artifactId>gs-dp-common</artifactId><version>gs-1.0.0</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId></dependency><!-- 分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId></dependency><dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId></dependency><dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version></dependency><!-- POI --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.17</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.3</version></dependency><dependency><groupId>org.apache.thrift</groupId><artifactId>libthrift</artifactId><version>0.9.3</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId></dependency></dependencies><!-- 项目打包时会将java目录中的*.xml文件也进行打包 --><build><plugins><plugin><!--该插件主要用途:构建可执行的JAR --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes><filtering>false</filtering></resource><!--设置自己目录下的配置文件--><resource><!--下方resources的文件夹名字要和自己项目的文件夹名确认一致才行 很多人就是忽略了名字不一致 --><directory>src/main/resources</directory><includes><include>**/*</include></includes></resource></resources></build></project>
  • 子项目(工具类)Pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns=".0.0"xmlns:xsi=""xsi:schemaLocation=".0.0 .0.0.xsd"><parent><artifactId>gangsi-dp-service</artifactId><groupId>cn.gangsi</groupId><version>gs-1.0.0</version></parent><modelVersion>4.0.0</modelVersion><groupId>cn.gangsi</groupId><artifactId>gs-dp-common</artifactId><packaging>jar</packaging><version>gs-1.0.0</version><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><!--jedis--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency><!-- 分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId></dependency><dependency><groupId>org.apachemons</groupId><artifactId>commons-lang3</artifactId></dependency><dependency><groupId>org.apachemons</groupId><artifactId>commons-text</artifactId><version>1.8</version></dependency><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId></dependency><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.1</version></dependency><!--md5 codec--><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId></dependency><!--hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId></dependency><!--阿里云短信--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId></dependency><!--bcprov--><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId></dependency><!--xml--><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!--                    <includeSystemScope>true</includeSystemScope>--><classifier>exec</classifier></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

1.3 打包

点击idea右侧maven隐藏按钮。打开maven项目目录如下:

点击clean清理,点击package即打包。打包后可以再target目录下看到jar包。

2. 部署

2.1环境搭建

安装部署好JDK,并配置好环境变量,运行java命令查看是否配置成功。如有数据库mysql,Redis等需要先部署好,不赘述。

2.2运行

把jar拷贝到服务器中,以管理员权限打开命令提示符窗口。cd到jar包目录,运行如下命令:

java -jar xxx.jar

可以看到运行成功的窗口。

3. 后台服务

以上是最简单的方式部署了一个Springboot多模块项目,但是此种部署方式的缺点是保持窗口开着,关闭即停止。

关闭cmd窗口前:

关闭后,用netstat -ano |findstr 8087查不到了,说明关闭了服务。

改进方式,用后台执行命令:

创建启动脚本文件start.bat,启动脚本如下:

@echo off
start javaw -jar xxx.jar
exit

点击start.bat,允许网络访问弹窗后,即可查到端口了。并通过访问接口确认服务已经成功启动。

更多推荐

记录打包部署Springboot项目到Windows环境

本文发布于:2023-12-06 08:34:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1667032.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:环境   项目   Springboot   Windows

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!