龍小星
2021-05-20 13:42
采纳率: 100%
浏览 67
已采纳

如何将编写的Springboot项目部署到服务器上并且让项目运行?

在之前要求的编程作业要求将项目部署道服务器上,我曾尝试过部署,但是按照一个教程的步骤操作的时候发生的情况和教程不尽相同。

输入和教程相同的指令后却没有得到一样的结果。这让人费解。想了解一个比较完整可行的操作流程。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • CSDN专家-张老师 2021-05-20 14:01
    已采纳

    第一步,导入jar包


    <build>
    <finalName>health3161</finalName> //这一句是要规定的jar包的名字
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>
    <repositories>
    <repository>
    <id>spring-releases</id>
    <url>https://repo.spring.io/libs-release</url>
    </repository>
    <repository>
    <id>spring-milestone</id>
    <url>http://repo.spring.io/libs-release</url>
    </repository>
    </repositories>
    <pluginRepositories>
    <pluginRepository>
    <id>spring-releases</id>
    <url>https://repo.spring.io/libs-release</url>
    </pluginRepository>

    第二步  打包

    run as   maven build    

    第一个就行   我写过很多次了  都是写一个package就行了

    运行结果   

     

     

    jar就在文件的target下

    health3161就是我们的目标jar包  拿到这个基本完成一半了

    第三步  把jar包上传到服务器

     

     

    这里是windows服务器  windows+r然后输入mstsc

     

     点击确认进入登录界面

    输入账号密码

    点击本地资源   按如图所示配置

    ok  一路确定登录

    找到自己的jar包复制到服务器上

    第四步  运行

    打开cmd  输入

    java  -jar  本地绝对路径/jar包名.jar

     

    ok成功

    点赞 打赏 评论
  • 小P聊技术 2021-05-20 13:47

    jar包(官方推荐)
    jar包方式启动,也就是使用spring boot内置的tomcat运行。服务器上面只要你配置了jdk1.8及以上,就ok。不需要外置tomcat
    1.先将项目在IDEA中打成jar包

    2.将jar包通过FTP工具放到服务器任意目录,执行下面的命令

              $ nohup java -jar test.jar >temp.txt &

    //这种方法会把日志文件输入到你指定的文件中,没有则会自动创建。进程会在后台运行。

     

    war包
    传统的部署方式:将项目打成war包,放入tomcat 的webapps目录下面,启动tomcat,即可访问。

    开发环境:jdk1.8 + IDEA

    下面搭建一个demo演示如何打war包部署并且如何访问:spring boot + maven
    1.新建spring boot + maven 项目,这里我们默认打成jar包,不用修改。

    2.项目新建完成后,修改启动Application文件继承SpringBootServletInitializer,实现configure方法

    package com.example.demo1;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    @RestController
    public class Demo1Application extends SpringBootServletInitializer {
    
    // 用来测试访问
    @RequestMapping("/")
    public String home() {
       return "hello 朋友";
    }
    
    public static void main(String[] args) {
      SpringApplication.run(Demo1Application.class, args);
    }
    
    // 继承SpringBootServletInitializer 实现configure 方便打war 外部服务器部署。
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Demo1Application.class);
      }
    }



    3.修改pom.xml

    完整pom.xml代码如下

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.example</groupId>
    <artifactId>demo1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <!-- 这里打成war包 若打jar,需将war改为jar -->
    <packaging>war</packaging>
    
    <name>demo1</name>
    <description>Demo project for Spring Boot</description>
    
    <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.0.4.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
    </properties>
    
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
    
      <dependency>
    
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        </dependency>
      </dependencies>
    
    <build>
      <finalName>demo1</finalName>
      <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      </plugins>
    </build>
    
    </project>



    4.打包
    这里可以直接到项目根目录下面:运行 maven package命令,打包。
    我这里直接使用idea打包


    5.将war放入外部tomcat的webapps目录下


    6.启动tomcat


    会弹出一个黑框,你会看到项目启动,启动完成后,直接访问:localhost:8080/demo1(即:ip:端口/项目名称,这里的端口是外部tomcat配置的端口,项目名称是war包得名称),浏览器输出“hello 朋友”,表示运行成功!

     

     

    小结
    1.对比两种打包方式,jar更加简单,方便。具体使用哪种方式,应视应用场景而定。
    2.再说一次,将项目打成war包,部署到外部的tomcat中,这个时候,不能直接访问spring boot 项目中配置文件配置的端口。application.yml中配置的server.port配置的是spring boot内置的tomcat的端口号, 打成war包部署在独立的tomcat上之后, 你配置的server.port是不起作用的。一定要注意这一点!!
    其实我们从tomcat的启动界面,已经可以看出,是启动的哪个端口:很明显,日志告诉我们,我们应该访问8080端口。

    点赞 1 打赏 评论
  • CSDN专家-sinjack 2021-05-20 13:46

    springboot项目用jar包部署方式很简单啊

    点赞 打赏 评论
  • CSDN专家-sinjack 2021-05-20 13:46

    只需要clean install  ,然后把生成的jar包放上去。通过java -jar命令运行就好了

    点赞 打赏 评论
  • 有问必答小助手 2021-05-20 13:57

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    点赞 打赏 评论

相关推荐 更多相似问题