SpringBoot打包以及debug

SpringBoot打包

使用springboot作为框架,项目打包发布有两种方式,一种是打jar包,使用springboot内置的tomcat启动;一种是打成war包,通过传统的外部tomcat进行发布。对这两种打包方式进行一个简单的总结:

一、打jar包发布

springboot打jar包后内置tomcat,生成的jar包是一个可执行的jar.

定义成包格式(不配置默认打包成jar包)

<!---定义成jar的方式-->
	<packaging>jar</packaging>

 

pom.xml中需要配置一下maven打包插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

 

打包命令 项目根路径 调出控制台CMD ,输入命令:mvn clean package

或者使用idea的maven管理工具,先clean,再package。

ps:maven工具栏隐藏的话通过View->Tool Windows ->Maven Projec唤出maven工具栏

 

打包时可以先关闭maven的test功能(防止本地打包需要连接本地ping不通的生产库导致的打包失败问题)。

在项目目录/target目录下生成可执行jar.将jar包上传到环境上。

执行命令 java -jar xxxx.jar即可

如果需要关掉窗口不会关停项目,执行命令

nohup java -jar xxxx.jar &

 

  • 命令结尾没有 “&” ,则变成 “java -jar XXX.jar ” ,表示在当前ssh窗口,可按CTRL + C打断程序运行,或者直接关闭窗口,则程序直接退出
  • 命令结尾添加 “&” ,则变成 “java -jar XXX.jar &” ,表示在当窗口关闭时,程序才会中止运行。&代表让该命令在后台执行。
  • 命令 "nohup java -jar XXX.jar &" 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。注意,该作业的所有输出被重定向到nohup.out的文件中。
  • 命令 "nohup java -jar XXX.jar > Log.log &" 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,并且该作业的所有输出被重定向到Log.log的文件中。“ > Log.log ” 该命令就是指定日志输出的文件。
  • ">>"表示将输出以追加的方式重定向到Log.log中。

 

jar包情况下debug:

jar包情况下的远程debug,通过启动命令参数来设置。

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8091,server=y,suspend=y -jar xxxxx.xxx.jar

相关参数含义:

-Xdebug是通知JVM工作在DEBUG模式下(这里不加也是可以的)

-Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境

transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式

server参数是指是否支持在server模式的VM中,server=y:调试服务端;server=n:调试客户端

suspend指明,是否在调试客户端建立起来后,再执行JVM,suspend=y:启动时即监听端口,等客户端连接(即IDEA远程debug连上端口)开始初始化,适合启动报错时的debug错误排查;

suspend=n:不等待客户端连接,适合运行态的debug错误排查。

二、打成war包发布

pom.xml中添加javax.servlet-api的依赖

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
</dependency>

 

排除springboot内置tomcat的干扰:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

 

修改启动类

修改之前

@SpringBootApplication
public class MainApp {

    public static void main(String[] args) {
        SpringApplication.run(MainApp.class,args);
    }
}

修改之后

@SpringBootApplication
public class MainApp extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(MainApp.class,args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(MainApp.class);
    }
}

 

执行打包命令即可生成war包,将war包放在tomcat的webapp目录下即可。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot中,有两种方式可以进行debug调试。第一种方式是直接运行Java Application,即运行被@SpringBootApplication注解标记的主类。这种方式非常方便进行debug,但是可能会与使用Thymeleaf代替MVC的Spring插件冲突,导致找不到项目的网页资源文件。第二种方式是使用Maven插件spring-boot:run来运行项目,这种方式可以避免冲突问题,但是默认情况下不提供调试功能。 要在Spring Boot中使用debug功能,可以按照以下步骤进行配置: 1. 在项目的pom.xml文件中,添加远程debug的属性。在<build>标签下的<plugins>标签中添加如下配置: ``` <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</jvmArguments> </configuration> </plugin> ``` 2. 在使用的IDE中(比如IntelliJ IDEA),打开Run - Edit Configuration界面,添加一个Remote的配置项,使用默认设置即可。 3. 配置完成后,使用命令mvn spring-boot:run来运行项目。 4. 在debug工具栏中,选择刚刚新建的远程debug项目,然后点击debug按钮。 这样就可以同时启动两个项目,一个是本地项目,一个是远程调试项目。通过远程调试,可以在代码中设置断点并调试API接口。希望对你有所帮助!\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [为 springboot 添加 debug功能](https://blog.csdn.net/nvd11/article/details/81267143)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [关于Spring-bootdebug调试](https://blog.csdn.net/qq_30005875/article/details/77102595)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Spring Boot Debug调试](https://blog.csdn.net/moakun/article/details/80086072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值