Linux中jdk的安装与卸载,及多版本jdk配置(宝塔面板)

一、卸载

1、获取当前已安装版本
rpm -qa | grep jdk
2、卸载不需要的版本(jdk名字得是上边查出来的全称,复制粘贴就行)
rpm -e --nodeps jdk1.8.0_121

二、单版本安装

1、官网下载tar.gz后缀的安装包 https://www.oracle.com/java/technologies/downloads/#java11

2、新建一个jdk文件夹,用宝塔面板把安装包上传到这个文件夹里,并且解压

3、执行命令进入配置文件:

vim /etc/profile

执行后如下图,输入E进入编辑模式,

复制如下代码到文件末尾,把JAVA_HOME的路径改成自己的jdk文件夹路径,java名字也改了

export JAVA_HOME=/www/jdk/jdk-11.0.18
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

插入后这样

4、保存并退出编辑,重新加载系统配置文件,这样可以使配置立即生效,不用重启

source /etc/profile

5、检查新安装的jdk

java -version

6、将jdk地址添加进宝塔JDK管理

原文链接:https://blog.csdn.net/cs_zhao18/article/details/126473295

服务器宝塔安装Jenkins

一、Jenkins包下载

大家可以从Jenkins官网(https://www.jenkins.io/)根据自己的需要下载最新的版本。
但Jenkins官网下载较慢,容易造成下载失败。可以去国内的开源镜像网站下载Jenkins最新版本。目前博主使用的是清华大学的开源镜像网站(https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/),大家可以根据自己的需要下载对应版本的war包

二、新建java项目 运行war包

1.不要太任意的位置新建jenkins文件夹,将下载的jenkins.war文件上传

2.这里两个坑,一个是宝塔默认生成的启动命令后是server.port=7377 ,要改成 –httpPort=7377

3.第二个项目用户要调成root,否则后面执行脚本会权限不足(这个耽误了很久,尝试给springboot权限失败了,这里只能选root避免权限不足)

这里要安装jdk11,需要安装参考另一个教程

/usr/local/btjdk/jdk-17.0.4.1/bin/java -jar -Xmx1024M -Xms256M  /www/wwwroot/jks/jenkins.war --httpPort=7377

启动命令讲解
/usr/local/btjdk/jdk-17.0.4.1/bin/java JDK 的路径
-Xmx1024M -Xms256M 限制最大内存为1024M 最小内存256M
--server.port=8656(jenkins 不支持server.port改用httpPort) 启动的端口

三 、运行Jenkins,启动后到日志查看解锁密码下一步会用到

四、输入ip:端口进行访问,访问不通记得查看宝塔是否放行端口

设置全跳过了,直接开始使用

原文链接:https://blog.csdn.net/yzding1225/article/details/127548016

Jenkins中文设置https://blog.csdn.net/zh__quan/article/details/106230100

jenkins配置Git源码管理https://blog.csdn.net/weixin_43507959/article/details/102689513

五创建一个新项目

如果没有maven选项,先安装插件,参考:https://www.likecs.com/show-203813628.html

记得去全局工具里安装maven版本否则下面运行会报错

输入项目名字,选择maven项目

Git项目输入git地址 https的

这里参考https://blog.csdn.net/weixin_43507959/article/details/102689513

参考https://gitee.com/help/articles/4181#article-header0

运行,要么就是maven报错,上面有解决办法,要么就是java报错,解决办法:https://blog.csdn.net/qq_35663625/article/details/123180907

1、根据报错去jenkins机器查看目录(/data/jenkins/workspace/test-zhanjian-super-web)是否存在,上去看该目录存在,原因一可排除

2、通过百度有博客说是jenkins机器的java没有配置环境变量
上jenkins机器查看java环境变量也配置了
最后网上建议做一个软链接,jenkins会自动去bin目录下查找java可执行文件,最终问题解决(具体原因还不知道)
# ln -s /www/jdk/jdk-11.0.18/bin/java /usr/local/bin/java 

顺利的话这里将会下载文件了

添加后执行的脚本文件

java -version
cd ../
# maven 项目名字 
# demo-0.0.1-SNAPSHOT.jar 项目打包后的jar包名字
sh start.sh maven demo-0.0.1-SNAPSHOT.jar

并且将 start.sh脚本放在 jenkins目录 .jenkins/workspace 下

#!/bin/bash

pathName=$1 # 项目名(项目目录名)
project=$2 # jar包名字(target下的jar包名字)

if [ "$pathName" = "" ];
then
    echo -e "\033[0;31m 未输入项目名 \033[0m"
    exit 1
fi
if [ "$project" = "" ];
then
    echo -e "\033[0;31m 未输入jar包名字 \033[0m  \033[0;34m target下的jar包名字 \033[0m"
    exit 1
fi

# 创建java项目目录
mkdir -p /www/javaroot/$pathName
# chmod 777 /www/javaroot/$pathName

# 删除文件
rm -rf /www/javaroot/$pathName/$project
echo "拷贝文件"
cp  ./$pathName/target/$project /www/javaroot/$pathName/
echo "切换路径"
cd /www/javaroot/$pathName/
# 解决jenkins自动杀掉衍生进程
BUILD_ID=dontKillMe

# 查询是否有已经存在的进程 
#grep -v start.sh 是排除这个sh进程,否则会同时把本进程杀死  start.sh是进程名
pid=`ps -ef | grep demo-0.0.1-SNAPSHOT.jar | grep -v grep | grep -v start.sh | awk '{print $2}'`
echo "已存在的进程pid"+$pid
if [ -n "$pid" ]
then
   kill -9 $pid
   echo "杀死存在进程"
fi

echo "启动项目"
nohup java -jar $project --spring.profiles.active=dev >/dev/null 2>&1 &
date #打印时间
echo "启动成功!"

出现这个界面说明已经运行成功

Linux文件更改编码

在Windows下编写了一个Shell脚本,上传到Linux中,无法运行。经查找,发现是编码不同的问题。

解决方案:
1.Linux下使用VI编辑器打开文件。
2.查看编码 :set ff
3.修改为Unix :set ff=unix
4.保存退出 :wq

宝塔面板使用WebHook配合gogs搭建钩子 Git push上传自动推送到服务器

第一步宝塔软件商店安装webhook

第二步 点击webhook设置添加脚本

脚本内容

#!/bin/bash

echo ""
#输出当前时间
date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"
echo "开始"
#判断宝塔WebHook参数是否存在
if [ ! -n "china" ];
then 
          echo "param参数错误"
          echo "End"
          exit
fi
#git项目路径
gitPath="/www/wwwroot/$1"

#git 网址
gitHttp="git@gitee.com:tyaa/test-hook.git"
echo "Web站点路径:$gitPath"
#判断项目路径是否存在
if [ -d "$gitPath" ]; then
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp .
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End1"
exit
else
echo "该项目路径不存在"
echo "新建项目目录"
mkdir $gitPath
cd $gitPath
#判断是否存在git目录
if [ ! -d ".git" ]; then
echo "在该目录下克隆 git"
sudo git clone $gitHttp gittemp
sudo mv gittemp/.git .
sudo rm -rf gittemp
fi
echo "拉取最新的项目文件"
#sudo git reset --hard origin/master
sudo git pull
echo "设置目录权限"
sudo chown -R www:www $gitPath
echo "End2"
exit
fi 

文件夹最好是空的

git命令操作

// 更新到远程仓库
$ git add .    //指定更新内容    . 表示全部更新,test.txt 表示更新指定文件
$ git commit -m "一些注释说明"     //添加更新说明
$ git push origin master            //执行更新操作

// 从远程仓库同步最新版本到本地
$ git pull origin master

// 克隆
$ git clone https://gitee.com/yourname/repository

// 本地初始化
$ git init //初始化本地项目
$ git remote add origin <远程仓库地址> //绑定远程仓库
#注:地址形式为 https://gitee.com/yourname/test.git 或 git@gitee.com:yourname/test.git

//查看所在目录的分支 -a表示所有
git branch -a
//输入命令切换分支
适用于第一次创建并切换分支
$ git checkout -b develop origin/develop
// 其中远程分支为origin/develop,本地分支为zhanghanlun
如果已经有本地分支,直接输入命令
$git checkout develop

// 强制推送,注意会强制删除原有仓库中的某些代码
$git push -u origin master -f
// 如果本地版本与远程版本有差异,但又要强制推送,使用 --force 参数:
git push --force origin master

git 本地改动了,不保留,直接拉取线上最新代码
git fetch --all  
git reset --hard origin/master

//git拉取远程代码并创建本地分支
git checkout -b dev(本地分支名) origin/dev(远程分支名)
//如果执行命令报错,可能是没有更新远程仓库信息,这时候需要手动更新下远程仓库信息,执行命令git fetch origin,再执行git branch -a可以看到最新的远程仓库信息,然后再重新执行git checkout -b dev(本地分支名) origin/dev(远程分支名)
git tag v1.0  # 给当前版本打上名为v1.0的标签
git push origin v1.0  # 将名为v1.0的标签推送到远程仓库
git push --tags  # 将所有本地的标签推送到远程仓库