【Shell】SpringCloud自动构建运行maven+git

这篇具有很好参考价值的文章主要介绍了【Shell】SpringCloud自动构建运行maven+git。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概述

可使用自动构建部署可视化平台,本篇仅提供shell方式

目录结构

-deploy.sh //下面的脚本
-shell
	-脚本把jar拷贝出来到这
	-jar包运行的脚本在shell中配置shell_path会在脚本最后执行
-项目名字(project_name)
	-pom.xml
	-...

shell

Windows写完放到Linux出现"xxx.sh /bin/bash^M: 坏的解释器:没有那个文件或目录”
sed -i ‘s/\r$//’ xxx.sh文章来源地址https://www.toymoban.com/news/detail-813949.html

#! /bin/bash
# git下载后文件名
project_name="project_test"
# 运行jar包脚本,一般直接放在该脚本同目录的shell文件夹中,最终所有jar包会移动到该目录下
shell_path="/opt/run.sh"
# git ssh项目地址
giturl="git@codeup.aliyun.com:。。。.git"
# 分支
branch="master"
if [ ! -d "./shell" ]; then
    mkdir shell
fi
# git拉取
if [ -d "./$project_name" ]; then
    echo "git fetch"
    cd $project_name
    git fetch origin $branch
else
    echo "git clone"
    git clone -b $branch $giturl
    cd $project_name
fi
# 复制.jar文件到./shell
mvn package -f ./pom.xml
echo "maven package jar finish"
if [ ! -d "./jar-package" ]; then
    mkdir jar-package
fi
shopt -s globstar
for file in **/*.jar; do
    if [[ "$file" != *"SNAPSHOT"* ]]; then
        mv "$file" "./jar-package"
    fi
done
rm -rf ./shell/*.jar
mv ./jar-package/* ../shell
cd ../shell
echo "jar merge to ./shell,running...."
# shell启动.jar文件
sh $shell_path

前端

wget https://nodejs.org/dist/v16.4.2/node-v16.4.2-linux-x64.tar.gz
tar -xvf node-v16.4.2-linux-x64.tar.gz
mkdir -p /usr/local/nodejs

# 建立node软链接
ln -s /usr/local/nodejs/bin/node /usr/local/bin
# 建立npm 软链接
ln -s /usr/local/nodejs/bin/npm /usr/local/bin

# 设置国内淘宝镜像源
npm config set registry https://registry.npm.taobao.org
# 查看设置信息
npm config list
#! /bin/bash
# git下载后文件名
project_name=""
# git ssh下载地址
giturl="git@codeup.aliyun.com:.git"
# 分支
branch="master"
# npm打包后文件名
vue_output_name="vue-out"
# 打包文件放置路径一般为nginx的html路径
deploy_path="/usr/local/nginx/html"
# 打包代码
build_sh="npm run build:production"
if [ -d "./$project_name" ]; then
    echo "git fetch"
    cd $project_name
    git fetch origin $branch
else
    echo "git clone"
    git clone -b $branch $giturl
    cd $project_name
fi
# npm install
$build_sh
if [ -d "$deploy_path/$vue_output_name" ]; then
    echo "rm old file"
    rm -rf $deploy_path/$vue_output_name
fi
mv $vue_output_name $deploy_path

安装Node和Maven

#!/bin/bash

# define
mvn_install(){
    if [ ! -d "/usr/local/apache-maven-3.8.8-bin" ]; then
        echo "apache_maven_install..."

        wget https://mirrors.aliyun.com/apache/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz

        tar -xvf apache-maven-3.8.8-bin.tar.gz  -C /usr/local/

        rm -rf apache-maven-3.8.8-bin.tar.gz
        
        echo 'MAVEN_HOME=/usr/local/apache-maven-3.8.8-bin' >> /etc/profile
        echo 'export PATH=${MAVEN_HOME}/bin:${PATH}' >> /etc/profile

        source /etc/profile
        echo "apache_maven_install success"
    else
        echo "error:apache-maven-3.8.8-bin.tar.gz has been exist"
        exit 1
    fi
}

node_install(){
    if [ ! -d "/usr/local/node" ]; then
        echo "node_install..."

        wget https://mirrors.aliyun.com/nodejs-release/v16.4.2/node-v16.4.2-linux-x64.tar.gz

        tar -xvf node-v16.4.2-linux-x64.tar.gz -C /usr/local/
        mv /usr/local/node-v16.4.2-linux-x64 /usr/local/node

        rm -rf node-v16.4.2-linux-x64
        rm -rf node-v16.4.2-linux-x64.tar.gz

        echo 'NODEJS_HOME=/usr/local/node' >> /etc/profile
        echo 'export PATH=$NODEJS_HOME/bin:${PATH}' >> /etc/profile

        source /etc/profile
        echo "node_install success"
    else
        echo "error:/usr/local/node has been exist"
        exit 1
    fi
}

ssh_key_install(){
    if [ ! -f "~/.ssh/id_rsa.pub" ]; then
        echo "git rsa ssh command below:"
        echo 'ssh-keygen -t rsa -C "your email"'
    else
        echo "ssh pub key exist"
    fi
}


# install maven
if command -v which mvn >/dev/null 2>&1 && which mvn >/dev/null 2>&1; then
    echo "mvn exist"
else
    echo "warn:mvn not exist"
    mvn_install
fi
# install node
if command -v which node >/dev/null 2>&1 && which node >/dev/null 2>&1; then
    echo "node exist"
else
    echo "warn:node not exist"
    node_install
fi

# git
if command -v which git >/dev/null 2>&1 && which git >/dev/null 2>&1; then
    echo "git exist"
    ssh_key_install
else
    echo "warn:git not exist,need to install"
    exit 1
fi

到了这里,关于【Shell】SpringCloud自动构建运行maven+git的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用(1编译器)

    作者:爱写代码的刚子 时间:2023.6.3 本篇博客主要详细介绍Linux中十分重要的工具:编译器,灵活使用这些工具是Linux中一项必备技能。项目自动化构建工具、调式器、git工具会在下一篇博客中进行介绍。 Linux编译器-gcc/g++使用 gcc编译C语言: g++编译C++: gcc只能编译C语言,而

    2024年02月09日
    浏览(53)
  • Maven方式构建Spring Boot项目

    创建项目 - HelloWorld01 单击【Create】按钮 在pom.xml文件里添加parent和web的起步器依赖 添加如下代码: 刷新项目依赖 创建net.army.boot包,在包里创建启动类HelloWorld01Application 添加如下代码: 注意:入口类必须添加注解符@SpringBootApplication,表明它是Spring Boot应用。 在主方法里,利

    2024年02月12日
    浏览(40)
  • Idea Maven 构建,运行Java程序,二次开发Jmeter

    【官网】https://maven.apache.org/download.cgi 【其他版本】https://dlcdn.apache.org/maven/maven-3/ 在Idea界面上关闭所有项目,全局配置: Ctrl + Alt + S 打开设置,搜索maven,配置如下 2. 配置运行程序Runner 【阿里云效】https://developer.aliyun.com/mvn/guide 右击Java - New - Package 输入package名称 - 新建Ja

    2024年02月11日
    浏览(33)
  • 【Linux工具】编译器、调式器、项目自动化构建工具以及git的使用3(GDB调试器的基础使用)

    作者:爱写代码的刚子 时间:2023.7.18 前言:本篇博客主要讲解Linux中调试器的使用,为之后的Linux编程打下坚固的基础。 背景 程序的发布方式有两种,debug模式(能被调试 )和release模式 Linux gcc/g++出来的二进制程序, 默认是release模式 要使用gdb调试,必须在源代码生成二进制程

    2024年02月17日
    浏览(35)
  • 使用Maven父工程构建spring boot子工程

    注意:子工程引入springboot相关依赖之后子工程才能被解析为springboot模块

    2024年02月11日
    浏览(32)
  • Maven Jetty运行Spring MVC项目

    pom引入插件 项目设置为war形式 Idea的Edit Configurations 然后选择Maven 点击 ‘+号’ 进行配置 点击 Debug 图标运行项目

    2024年02月07日
    浏览(24)
  • [Spring Boot] 开发时可以运行,但Maven打包后,无法运行

    问题:开发过程中一切正常,但在打包后,使用java -jar运行jar包时报错 Exception in thread \\\"main\\\" java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/JarLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versi

    2024年02月10日
    浏览(31)
  • 【Idea+Maven+Git:构建高效Java项目的强大组合】

    在当今的软件开发世界中,集成开发环境(IDE)、构建工具和版本控制系统是每个项目不可或缺的组成部分。本文将深入探讨这三个工具:IntelliJ IDEA、Maven和Git,以及它们如何协同工作,帮助开发者构建更高效、更可靠的项目。上一篇介绍了Git的分支管理策略,本文将介绍相

    2024年02月20日
    浏览(86)
  • Idea使用Docker插件实现maven打包自动构建镜像

    Docker 开启TCP 服务 改写以下内容 重启服务 此时docker已经开放了2375端口,使用外部主机访问 http://docker:2375/info IDEA 集成Docker 安装Docker 插件 配置docker服务地址 点击view-services,打开docker的操作面板 双击docker01可以看到此docker服务下镜像和容器 右击docker镜像,可以创建新的容器,

    2024年02月10日
    浏览(34)
  • Jenkins+Maven+Gitlab+Tomcat 自动化构建打包,部署

    1、安装服务 Jenkins工具、环境、插件配置 全局变量配置 Manage JenkinstoolsJDK 安装 安装插件 Deploy to container 安装此插件,才能将打好的包部署到tomcat上     配置国内mvn源 创建maven项目 1  2   3    4    5    6    7    8     9 10  

    2024年02月05日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包