关于如何将一个springcloud项目部署至服务器

2023-11-06

目录

1.部署形式

2.Alibaba Cloud Toolkit的使用

3.一个springcloud项目的部署

4.运行jar包

5.后台运行


1.部署形式

一般我们在后端开发中,常常将整个springboot项目打包成war包,或是打包成一个jar包,再将其使用ssh工具传输至服务器中,执行即可。

但是springcloud项目属于微服务框架,是由一个父工程下包括好几个微服务组成,每个微服务都需要分别执行,无法直接将整个项目进行打包,然后像springboot一样直接执行。所以我们需要分别打包各微服务,并将父工程中携带的信息和依赖也打包进子项目中,再以jar包形式进行部署,分别运行各微服务。

2.Alibaba Cloud Toolkit的使用

我们部署一个微服务,一般要用xftp把前后端所在文件夹打开,把jar、dist备份再上传,然后再打开xshell把前后端kill掉,然后再敲命令重新启动前后端......流程较为繁杂,如果对Linux系统不熟悉,或者不会使用ssh工具的,将会十分麻烦。

Alibaba Cloud Toolkit 是阿里云针对IDE平台为开发者提供的一款插件,用于帮助开发者高效开发并部署适合在云端运行的应用,通过图形配置的方式连接到云端部署环境并将应用程序快速部署到云端。

下面就对其使用进行一次演示:

首先,我们需要在IDE的下载该插件:

下载完成后,我们可以在tools中看到该插件,点开它,我们首先需要填写一些服务器相关的信息:

 填写你的主机Ip,链接的端口号,用户名及密码。

添加成功后,我们就可以进行项目的上传:

又或者,我们点开是这种形式的:

3.一个springcloud项目的部署

在填写完服务器信息后,下面,我们就进行一次springcloud项目的部署。

首先,在运行Alibaba Cloud Toolkit前我们需要点击Advanced填写一些命令:

都是maven命令,其中clean install代表把父工程的信息打包保存进子微服务中,clean package代表把微服务打包为jar包。

运行Alibaba Cloud Toolkit,即可远程把打包好的jar包远程传输进服务器中:

需要注意的是,我们打包微服务之前,需要在微服务的Pom.xml文件中做对应的配置:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.0.RELEASE</version>
                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>
                    <!-- 指定该Main Class为全局的唯一入口 -->
                    <mainClass>com.seven.springcloud.EurekaMain</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 在这里我们需要指定微服务运行的主类,指定把微服务的依赖也一同打包进jar包中。

4.运行jar包

在打包完之后,我们就可以在终端运行我们的微服务了。

我们点开Alibaba Cloud Toolkit中的Alibaba  cloud view,我们可以在IDE直接连接终端:

进入对应的文件夹下,输入java -jar 你的jar包名称 命令,jar包就开始运行啦 :

于是我们就部署成功一个微服务了,需要部署其他微服务,同理,然后我们根据需求,开启微服务即可。

5.后台运行

由于一些服务器不稳定,我们使用java -jar命令运行微服务时,有可能微服务运行一段时间后就挂掉了,所以我们可以指定微服务后台运行。

nohup java -jar 你的jar包名称 > 日志输出的文件名 &

比如;nohup java -jar cloud-user-manage-1.0-SNAPSHOT.jar > /opt/black_recognize/jre/log/cloud-user-manage.log &

即指定了cloud-user-manage-1.0-SNAPSHOT.jar微服务在后台运行,输出日志在 /opt/black_recognize/jre/log/cloud-user-manage.log文件中。

而关于另一种后台运行方式,才采用dockerfile形式进行,具体可参考关于如何将一个springboot项目部署至服务器——docker版_tang_seven的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于如何将一个springcloud项目部署至服务器 的相关文章

  • 使用 Tabula 通过 Python 读取 pdf 时出现 Java 错误

    我已经安装了 tabula 库 用于使用 python 将 pdf 读取到 pandas 数据框中 但是当我运行代码时 import tabula df tabula read pdf sample1 pdf pages 1 我得到了例外
  • 如何在java中将数组值排序为循环格式?

    我的数组值如下 String value 1 2 3 4 5 6 7 8 9 10 假设如果我将值 5 传递给 tat 数组 它应该按如下顺序排序 5 6 7 8 9 10 1 2 3 4 怎么办 有人帮忙吗 感谢你 你需要的就是所谓的轮换
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • Thymeleaf 3 Spring 5 映射加载字符串而不是 HTML

    我正在尝试将 Spring 5 和 Thymeleaf 3 一起配置 我正在 Eclipse 上工作 我使用 全新安装 构建并使用 springboot run 运行应用程序 我已经设置了一个控制器和几个模板 但 Thymeleaf 似乎找
  • 为什么即使我的哈希码值相同,“==”也会返回 false

    我写了一个像这样的课程 public class HashCodeImpl public int hashCode return 1 public static void main String args TODO Auto generat
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • 如何检查某个元素是否存在于一组项目中?

    In an ifJava中的语句如何检查一个对象是否存在于一组项目中 例如 在这种情况下 我需要验证水果是苹果 橙子还是香蕉 if fruitname in APPLE ORANGES GRAPES Do something 这是一件非常微
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 如何在 ant 中为 junit 测试设置 file.encoding?

    我还没有完全完成file encoding 和 ant https stackoverflow com questions 1339352 how do i set dfile encoding within ants build xml
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • 不可变的最终变量应该始终是静态的吗? [复制]

    这个问题在这里已经有答案了 在java中 如果一个变量是不可变的并且是final的 那么它应该是一个静态类变量吗 我问这个问题是因为每次类的实例使用它时创建一个新对象似乎很浪费 因为无论如何它总是相同的 Example 每次调用方法时都会创
  • Spring @Cacheable 和 @Async 注解

    我需要缓存一些异步计算的结果 具体来说 为了克服这个问题 我尝试使用 Spring 4 3 缓存和异步计算功能 作为示例 我们采用以下代码 Service class AsyncService Async Cacheable users C
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • 在java中以原子方式获取多个锁

    我有以下代码 注意 为了可读性 我尽可能简化了代码 如果我忘记了任何关键部分 请告诉我 public class User private Relations relations public User relations new Rela
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应
  • Java 11 - 将 Spring @PostConstruct 替换为 afterPropertiesSet 或使用 initMethod

    我正在使用 spring 应用程序 有时会使用 PostConstruct用于代码和测试中的设置 看来注释将被排除在外Java 11 https www baeldung com spring postconstruct predestro
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐