腾讯云服务器部署前后端服务

news2024/11/18 21:49:47

服务器:OpenCloudOS (兼容centos8)

后端:java+Springboot

前端:Vue


下载jdk

1)下载jdk11

wget https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz

2)解压jdk

tar -xzvf openjdk-11+28_linux-x64_bin.tar.gz

3)环境变量配置

vim /etc/profile 加入以下内容

JAVA_HOME=/home/lighthouse/jdk-11

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=$JAVA_HOME/lib

export JAVA_HOME CLASSPATH PATH

4)刷新配置文件使生效 source /etc/profile

5)查看java版本信息 java -version

下载jenkins

下载 wget https://mirrors.aliyun.com/jenkins/redhat-stable/jenkins-2.426.2-1.1.noarch.rpm

安装

rpm -ivh jenkins-2.426.2-1.1.noarch.rpm

yum install jenkins

修改配置文件 /usr/lib/systemd/system/jenkins.service

修改user为root

修改端口

javahome

防火墙开启8180端口

启动jenkins sudo systemctl start jenkins

Manage Jenkins -》 Plugins -〉 Advanced settings -》 Update Site
修改插件镜像源
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
https://updates.jenkins.io/update-center.json
http://mirror.xmission.com/jenkins/updates/update-center.json

-----------

服务器下载git

查看版本 git --version

如果版本过低则卸载 yum remove -y git

git下载地址:Index of /pub/software/scm/git/

[root@localhost ~]# yum -y install libcurl-devel expat-devel curl-devel  gettext-devel openssl-devel zlib-devel
 
[root@localhost ~]# yum -y install  gcc perl-ExtUtils-MakeMaker
 
[root@localhost ~]# cd /usr/local/src/
 
# 下面的地址就是通过上面的下载地址获取的
[root@localhost src]# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
 
[root@localhost src]# tar -zvxf git-2.9.5.tar.gz
 
[root@localhost src]# cd git-2.9.5.tar
 
[root@localhost git-2.9.5]# make prefix=/usr/local/git all
 
[root@localhost git-2.9.5]# make prefix=/usr/local/git install

添加git到环境变量 vi /etc/profile

export PATH=$PATH:/usr/local/git/bin

刷新环境变量 source /etc/profile

查看更新后的git版本和所在路径

[root@localhost ~]# git --version
 
[root@localhost ~]# whereis git

进入jenkins设置

Path to Git executable填入whereis git展示的内容+/bin/git

如上面"whereis git"的地址为"/usr/local/git",则应该填入 "/usr/local/git/bin/git"
 

jenkins配置git信息

1)github上新建token, 并记录

Settings/Developer Settings / Personal access tokens (classic)

2) 去到要操作的远程仓库,添加一个 webhook

PayloadURL填的就是http://XXX(你的服务器,填localhost):端口号8080/github-webhook(照抄),其他的照抄

3)下载插件 GitHub Integration Plugin ,安装完后,重启jenkins

4)配置Github 服务器

系统管理—>系统设置—>GitHub --> Add GitHub Sever

API URL 输入 https://api.github.com ,点击Add添加信息

服务器下载maven

下载地址 Maven – Download Apache Maven

下载后上传压缩包到服务器, tar -zvxf解压缩

配置环境变量 vi /etc/profile

export MAVEN_HOME=/home/lighthouse/apache-maven-3.8.8 (这里改成自己的路径)

export PATH=$MAVEN_HOME/bin:$PATH

刷新环境变量 source /etc/profile

查看版本 mvn -v

CentOS8安装Maven-CSDN博客

需要在jenkins上下载Maven Integration 插件

jenkins配置maven信息

jenkins new item (后端)

General配置

Source Code Management 配置

Credentials是jenkins的账号密码,配置见下图

Branch Specifier 要和github的branch对应

Build Triggers

Build whenever a SNAPSHOT dependency is built

  • 这个选项允许你的项目在它的任何依赖项(特别是 Maven 依赖)被构建时自动触发构建。这通常用于当一个项目依赖于另一个项目的快照版本时,确保在依赖更新后立即重新构建。

Trigger builds remotely (e.g., from scripts)

  • 这个选项允许你通过网络请求远程触发构建。这可以通过调用 Jenkins 的 API 或者使用特定的脚本来实现。

Build after other projects are built

  • 这个选项会在你的项目在其他指定的项目构建完成后触发。这通常用于依赖关系,比如你需要等待一个或多个项目构建完成后才能开始自己的构建。

Build periodically

  • 这个选项允许你设置一个周期性的时间表来触发构建。你可以指定一个 cron 表达式来定义构建的频率和时间。

GitHub hook trigger for GITScm polling

  • 当配置了这个选项后,Jenkins 可以使用 GitHub 的 webhook 功能,在源代码仓库(如 GitHub)有新的提交时自动触发构建。这通常用于实现持续集成。

Poll SCM

  • 这个选项会让 Jenkins 定期轮询(检查)源代码管理(SCM)系统,如 Git,以查看是否有新的更改。如果有新的提交,Jenkins 将自动开始一个新的构建。

Build Environment

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
       <excludes>
          <exclude>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
          </exclude>
       </excludes>
    </configuration>
</plugin>

Pre Steps

可以构建环境变量和执行shell脚本,我在这里选择shell脚本打jar包

echo "------------pre steps ---------------"

mvn clean package

echo "-----------mvn clean package done ---------------"

/var/lib/jenkins/workspace/3/target/mywiki.jar

Build

因为我的打包命令写在了prestep里,这里就可以空着了。

Root POM

  • 指定构建的根 POM 文件路径。这通常是 Maven 项目的 pom.xml 文件,它定义了项目的构建过程和依赖。

Goals and options

  • 输入你想要执行的 Maven 目标(Goals)和选项。例如,clean install 是常见的 Maven 命令,用于清理之前的构建产物并安装新的构建到本地仓库。

Advanced

高级设置,通常用于添加额外的 Maven 参数或系统属性。

MAVEN_OPTS

  • 用于指定传递给 Maven 进程的 JVM 参数,如内存设置 -Xms512m -Xmx2g。

Incremental build - only build changed modules

  • 如果启用,Maven 将只构建那些有更改的模块,以加快构建速度。

Disable automatic artifact archiving

  • 禁用自动将构建产物存档到 Jenkins 的构建目录。

Disable automatic site documentation artifact archiving

  • 禁用自动存档生成的站点文档(如 Javadoc)。

Disable automatic fingerprinting of consumed and produced artifacts

  • 禁用对消耗和生成的构件进行自动指纹记录,这有助于识别和定位构件。

Enable triggering of downstream projects

  • 如果勾选,当当前项目的构建完成后,会自动触发下游项目的构建。

Build modules in parallel

  • 允许 Maven 并行构建模块,这可以加快构建速度。

Use private Maven repository

  • 指定使用私有 Maven 仓库而不是公共仓库。

Resolve Dependencies during Pom parsing

  • 在解析 POM 文件时解析依赖,这可以加快构建速度。

Run Headless

  • 允许 Maven 在无头模式下运行,即不需要图形用户界面。

Process Plugins during Pom parsing

  • 在解析 POM 文件时处理插件,这可以确保插件配置被正确应用。

Use custom workspace

  • 允许 Maven 使用自定义的工作空间目录。

Maven Validation Level

  • 设置 Maven 校验级别,如 WARNING、ERROR 等。

DEFAULT

  • 使用默认的 Maven 配置。

Settings file

  • 指定 Maven 设置文件的位置,通常是一个 settings.xml 文件,它包含了 Maven 的配置信息,如仓库位置、构建代理等。

Use default maven settings

  • 使用 Jenkins 服务器上的默认 Maven 设置。

Global Settings file

  • 使用全局 Maven 设置文件,这通常在 Jenkins 的系统配置中定义。


 

Post Steps

"Post Steps"(后续步骤)是构建完成后执行的一系列操作。这些步骤可以用于各种目的,如通知、清理、部署或其他自定义任务。以下几个选项控制了何时执行这些后续步骤:

Run only if build succeeds

  • 这个选项意味着只有当构建成功完成时,后续步骤才会被执行。如果构建失败或者产生异常,这些步骤将被跳过。这适用于那些只对成功构建有意义的操作,比如部署到生产环境。

Run only if build succeeds or is unstable

  • 使用这个选项,即使构建结果为 "Unstable"(例如,自动化测试中有些测试用例失败),后续步骤也会执行。"Unstable" 通常表示构建本身完成了,但是存在一些警告或测试失败的情况。这可以用来进行一些额外的检查或者通知,即使构建不是完全成功的。

Run regardless of build result

  • 无论构建成功、失败还是处于不稳定状态,选择这个选项后,后续步骤都会执行。这通常用于那些无论构建结果如何都需要进行的操作,比如发送构建结果通知、清理工作空间、记录日志信息等。

选择哪种选项取决于你的具体需求和 CI/CD 流程。例如,你可能不希望在构建失败时部署应用,但你可能总是需要发送邮件通知团队成员构建的状态,或者清理一些临时文件。

生成的jar名字是在pom文件中定义的

<build>
    <finalName>mywiki</finalName>
</build>

Jar文件路径是 jenkins工作区+item名称+项目的jar包路径

在这里通过 java -jar 启动后端服务

#!/bin/bash
# 获取当前 job 名称
ITEM_NAME="${JOB_NAME}"

# 拼接完整的 JAR 文件路径
JAR_PATH="/var/lib/jenkins/workspace/${ITEM_NAME}/target/mywiki.jar"

# 检查 JAR 文件是否存在
if [ -f "$JAR_PATH" ]; then
    echo "JAR file found at: $JAR_PATH"
    # 这里可以添加启动 JAR 文件的命令
    java -jar ${JAR_PATH}
else
    echo "JAR file not found at: $JAR_PATH"
    # 可以在这里添加错误处理逻辑
fi

以下是前端部分


下载nodejs

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许你在服务器端运行 JavaScript 代码。Vue 项目中广泛使用了基于 Node.js 的工具和库。 Node.js 的安装会自带 npm(Node Package Manager),这是 JavaScript 的包管理器。

Node.js — Download Node.js®

下载的包为node-v20.13.0-linux-x64.tar.xz格式,

安装xz工具来解压缩 sudo dnf install xz

解压缩 tar xf node-v20.13.0-linux-x64.tar.xz

验证安装 node -v

jenkins配置nodejs

jenkins 安装NodeJS插件

配置

下载npm

npm 是 Node.js 的默认包管理器,用于管理项目中的依赖。Vue 项目中的大部分依赖都是通过 npm 来安装的。

下载 sudo dnf install npm

验证安装 npm -v

设置 npm 镜像 npm config set registry https://registry.npmmirror.com (2021 年淘宝发文称,npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了registry.npmmirror.com。旧域名也于 2022 年 5 月 31 日停止服务)

查看镜像 npm config get registry

下载Vue CLI

Vue CLI 是 Vue 官方的命令行工具,它提供了快速搭建 Vue 项目和开发过程中的许多辅助功能。

下载 sudo npm install -g @vue/cli

打包Vue项目

npm run build

本地运行打包后的包:

sudo npm install -g serve

serve -s dist

服务器下载nginx

下载nginx
sudo dnf install epel-release
sudo dnf install nginx
启动 Nginx 服务,并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

检查是否成功启动 sudo systemctl status nginx

sudo cp -r /var/lib/jenkins/workspace/frontend_Item/web/dist/* /usr/share/nginx/html/my-vue-app/

配置 Nginx 运行 Vue 应用

  1. 创建 Vue 应用的目录: 假设你的 Vue 应用构建后的 dist 文件夹名为 my-vue-app,你需要在 Nginx 的网页根目录下创建一个相应的目录。
sudo mkdir -p /usr/share/nginx/html/my-vue-app
  1. 复制 Vue 应用的静态文件: 将 Vue 应用构建后的 dist 文件夹内容复制到 Nginx 的目录中。
sudo cp -r /path/to/your/vue/dist/* /usr/share/nginx/html/my-vue-app/

请将 /path/to/your/vue/dist 替换为你的 Vue 项目 dist 文件夹的实际路径。

  1. 配置 Nginx 虚拟主机: 创建一个新的 Nginx 配置文件,用于设置 Vue 应用的虚拟主机。
sudo vi /etc/nginx/conf.d/my-vue-app.conf

在文件中添加以下内容,然后保存退出:

server {
    listen 80;
    server_name my-vue-app;

    location / {
        root /usr/share/nginx/html/my-vue-app;
        try_files $uri $uri/ /index.html;
    }

    location /api/ {
        proxy_pass http://your-backend-api:port;
    }

    location /static/ {
        root /usr/share/nginx/html/my-vue-app;
    }

    error_page 404 /404.html;
    location = /404.html {
        internal;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        internal;
    }
}

请将 my-vue-app 替换为你的实际应用名称,http://your-backend-api:port 替换为你的后端 API 服务器地址和端口。

  1. 重启 Nginx 以应用配置
sudo systemctl restart nginx
  1. 访问你的 Vue 应用: 在浏览器中输入 http://your_server_ip 或 http://your_server_domain,你应该能看到你的 Vue 应用正在运行。

jenkins new item(前端)

通用、源码配置、触发器同后端配置。

Build Environment

Pre Steps

在这里配置代码打包信息。

vue代码打包后会生成一个dist文件夹,因为在我自己jenkins服务器上配置打包,CPU会直接98%, 所以我是在本地进行打包,然后再传代码到git, 这里的配置就可以省略。

#!/bin/bash
# 获取当前 job 名称
ITEM_NAME="${JOB_NAME}"
echo "===========${ITEM_NAME}=========="

# 拼接完整的 package.json路径
JSON_PATH="/var/lib/jenkins/workspace/${ITEM_NAME}/web/"
echo "===========${JSON_PATH}=========="
cd ${JSON_PATH}

echo "===========start  clean cache =========="
npm cache clean --force
echo "===========start  npm install =========="
npm install

echo "===========start  npm run build  dabao=========="
npm run build

Post Steps

把打包后的dist文件复制到nginx目录下,然后重启nginx

#!/bin/bash

echo "===========copy file start=========="
cp -r /var/lib/jenkins/workspace/${ITEM_NAME}/web/dist/* /usr/share/nginx/html/my-vue-app/
echo "===========copy file done=========="

echo "===========restart ngix start=========="
systemctl restart nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1662229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uni-appH5Android混合开发二 || 使用Android Studio打包应用APK

前言&#xff1a; 在上一章节我们已经讲了如何uni-app离线打包Android平台教程&#xff0c;这一章就该来讲讲如何使用Android Studio打包应用APK提供给Android手机安装使用了。 uni-app跨平台框架介绍和快速入门 uni-app跨平台框架介绍和快速入门 第一步、首先打开已经编译好的…

Element快速上手!

Element是饿了么公司前端团队开发的一套基于Vue的组件库&#xff0c;用于快速构建网页~ 官网链接&#xff1a; Element - The worlds most popular Vue UI frameworkElement&#xff0c;一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库https://element.elem…

uni-app(三):离线打包与插件引用(Android)

离线打包与插件引用 1.下载Android离线SDK2.使用Android Studio打开离线打包项目并更新Gradle3.解决报错4.构建5.配置AppKeya.查看证书b.申请AppKeyc.配置AppKey 6.生成本地打包App资源7.拷贝App资源到Android项目中8.修改 appid9.修改Android项目配置文件10.下载证书并配置11.…

基于Springboot+Vue的Java项目-电影院购票系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员衣一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

开源高性能的分布式时序数据库:Lindb

Lindb&#xff1a;为大数据时代量身打造的高性能时序数据库&#xff0c;让海量数据存储与实时分析触手可及。- 精选真开源&#xff0c;释放新价值。 概览 Lindb 是一款开源的分布式时序数据库&#xff0c;它以其高性能和可伸缩性在海量数据存储及快速查询计算方面展现出独特的…

在数字化时代保持企业财务管理的持续技术创新

根据全球市场调查&#xff0c;在现阶段企业如果还不更新自身的商业运作模式&#xff0c;企业的业务可能会一点一点丧失市场竞争力。技术进步是所有行业发展的明显趋势。许多年轻的初创企业具有创新管理思维、精益求精的决策流程和现代化的商业基础设施&#xff0c;这些顺应时代…

uniapp百度地图聚合

// loadBMap.js ak 百度key export default function loadBMap(ak) {return new Promise((resolve, reject) > {//聚合API依赖基础库,因此先加载基础库再加载聚合APIasyncLoadBaiduJs(ak).then(() > {// 调用加载第三方组件js公共方法加载其他资源库// 加载聚合API// Ma…

基于STM32移植lvgl(V8.2)(SPI接口的LCD)

目录 概述 1 认识LVGL 1.1 LVGL官网 1.2 LVGL库文件下载 2 认识SPI接口型LCD 2.1 PIN引脚定义 2.2 MCU IO与LCD PIN对应关系 3 实现LCD驱动 3.1 使用STM32Cube配置Project 3.2 STM32Cube生成工程 4 移植LVGL 4.1 准备移植文件 4.2 添加lvgl库文件到项目 4.2.1 src下…

【半夜学习MySQL】表结构的操作(含表的创建、修改、删除操作,及如何查看表结构)

&#x1f3e0;关于专栏&#xff1a;半夜学习MySQL专栏用于记录MySQL数据相关内容。 &#x1f3af;每天努力一点点&#xff0c;技术变化看得见 文章目录 创建表查看表结构修改表删除表 创建表 语法&#xff1a; create table table_name(field1 datatype,field2 datatype,fiel…

springboot3项目练习详细步骤(第三部分:文章管理模块)

目录 发布文章 接口文档 业务实现 自定义参数校验 项目参数要求 实现思路 实现步骤 文章列表(条件分页) 接口文档 业务实现 mapper映射 更新文章 接口文档 业务实现 获取文章详情 接口文档 业务实现 删除文章 接口文档 业务实现 文章管理业务表结构…

Java入门基础学习笔记1——初识java

1、为什么学习java&#xff1f; 几乎统治了服务端的开发&#xff1b;几乎所有的互联网企业都使用&#xff1b;100%国内大中型企业都用&#xff1b;全球100亿的设备运行java。开发岗位薪资高。 Java的流行度很高&#xff0c;商用占有率很高。 可移植性。 2、Java的背景知识 …

Springboot集成SpringbootAdmin实现服务监控管理-10

SpringbootAdmin Spring Boot Admin是一个用于管理和监控Spring Boot应用程序的开源软件。 概要介绍 Spring Boot Admin可以监控Spring Boot单机或集群项目&#xff0c;它提供了详细的健康&#xff08;Health&#xff09;信息、内存信息、JVM系统和环境属性、垃圾回收信息、…

解决在Outlook中预定Teams会议不显示入会链接的问题

今天遇到一个很蛋疼的teams问题&#xff0c;花了点时间才解决。本来以为是很简单的问题&#xff0c;随便网上冲浪一下就能找到答案的&#xff0c;结果根本就没有好的解决方案&#xff0c;所以我分享出来希望后来的老哥少走点弯路。 问题描述 简单来说&#xff0c;就是在Outlo…

使用 MSYS2 Qt6 发布绿色版的SDR软件无线电应用

文章目录 概要整体架构流程技术名词解释技术细节在启动器中为子进程设置路径和环境。如何迅速找齐所有的DLL 小结附件 概要 新接触软件定义无线电&#xff08;SDR&#xff09;的朋友一般都会一股脑的安装一些现有的SDR平台。无论是GNURadio还是SDR、SDRSharp、SDRAngel&#x…

一文了解spring的aop知识

推荐工具 objectlog 对于重要的一些数据&#xff0c;我们需要记录一条记录的所有版本变化过程&#xff0c;做到持续追踪&#xff0c;为后续问题追踪提供思路。objectlog工具是一个记录单个对象属性变化的日志工具,工具采用spring切面和mybatis拦截器相关技术编写了api依赖包&a…

[windows系统安装/重装系统][step-3]装驱动、打驱动、系统激活

重装系统三部曲 [windows系统安装/重装系统][step-1]U盘启动盘制作&#xff0c;微软官方纯净系统镜像下载-CSDN博客 [windows系统安装/重装系统][step-2]BIOS设置UEFI引导、磁盘分区GPT分区、安装系统[含完整操作拍照图片]-CSDN博客 [windows系统安装/重装系统][step-3]装驱动…

【C++】CentOS环境搭建-安装CATCH2

【C】CentOS环境搭建-安装CATCH2 1.克隆Catch2仓库2. 进入Catch2目录3. 创建一个构建目录4. 使用CMake生成构建系统&#xff08;以及可能的编译&#xff09;5.安装Catch2&#xff08;可选&#xff0c;根据你的需求&#xff09; 1.克隆Catch2仓库 git clone https://github.com…

AI图书推荐:ChatGPT全面指南—用AI帮你更健康、更富有、更智慧

你是否在努力改善你的健康&#xff1f; 你是否长期遭受财务困难&#xff1f; 你想丰富你的思想、身体和灵魂吗&#xff1f; 如果是这样&#xff0c;那么这本书就是为你准备的。 《ChatGPT全面指南—用AI帮你更健康、更富有、更智慧》&#xff08;CHATGPT Chronicles AQuick…

MBR与GPT分区表

文章目录 MBR分区表MBR分区表结构MBR分区表项查看U盘的分区表信息查看系统中所有磁盘的分区类型获取分区表信息 GPT分区表保护性MBRGPT分区表头格式GPT分区表项格式分区类型分区属性分区表项内容 MBR分区表 CHS &#xff1a;磁头&#xff08;Heads&#xff09;、柱面(Cylinder…

#兼职副业赚钱吗?# 宝妈与上班族在水牛社的财富探索

在这个繁忙的都市节奏中&#xff0c;宝妈与上班族都面临着平衡家庭与经济的挑战。那么&#xff0c;兼职副业真的能为他们带来额外的收入吗&#xff1f;接下来&#xff0c;让我们通过两个实例&#xff0c;揭示宝妈和上班族是如何在水牛社找到兼职副业赚钱的契机的。 ✨ 宝妈的故…