工作笔记 · 2023年12月13日 0

win server2016 Jenkins,发布jar,vue

0.git install

1.jenkins

www.jenkins.io—download –windows version msi file

https://jdk.java.net/21/ —Windows?/?x64 –zip file

a.unzip jdk and cut to right folder
b.run jenkins msi file ,select right jdk folder
c.jenkins –c:\program file\jenkins\jenkins.err –find inti administrator password
d.downlaod maven363 zip from LHT
e.unzip maven363 and cut&rename to d:\opt\maven363
e.1.1 edit maven setting file for jnpf

f.install maven plugins in jenkins website
g.jenkins–manage jenkins–tools–>maven–MAVEN_HOME=d:/opt/maven388
h.install jenkins plugins —nodejs
j.download nodejs =vserion=14.21 https://nodejs.org/dist/latest-v14.x/ zip for unzip
k.jenkins–manage jenkins–tools–>nodejs–install folder=d:/opt/node1421
—由于服务器网络问题 Node 的npm install 时候执行了一半 ,切换 taobao.org 镜像
需要删除 下载的 jenkins-workspace-mom-war的工作空间,把 node 默认的module的目录删除

l.jenkins任务中的windows batch command 执行 某个目录下的bat脚本,如果脚本用到了 类似 xcopy 这样的命令,
在windows的dos命令窗口是可以执行,但是在默认配置的jenkins 无法执行,因为jenkins寻找xcopy的命令是根据 windows环境变量
,默认这个2016 server 环境变量没有指向 c:\windows\system32 ,所以要单独在path里面增加一个,jenkins在windows是服务形式存在,
环境变量变更后,需要重启 jenkins服务

m.jenkins里面的乱码问题-通过配置windows的环境变量JAVA_TOOL_OPTIONS=-Dfile.encoding=GBK ,重启jenkins服务后,即可

n.jenkins创建 jar包程序任务,选择freestyle 类型,之前选择maven类型不知为何会先用 java环境启动什么鬼,之前还因此配置maven的
内存大小为1024m

配置文件:c:\users\administrator.npmrc—registry/cache/prefix

REM npm i –registry=https://registry.npm.taobao.org

2.jdk for mom applications 8u371
–配置环境变量后,不知道为什么 power shell的 环境变量与cmd不一致
–由于用的是 windows server 2016,需要重启服务器才能 让环境变量生效

–需要覆盖一个文件 java.security –from LHT -才能启动 admin.jar
C:\Program Files (x86)\Java\jdk-1.8\jre\lib\security\java.security

3.nginx—服务器重启需要 用 start nginx 启动–d:\opt\nginx1253 目录下
download zip file and unzip&cut to right folder

不知道为什么 windows server 2019下的nginx 的配置 和 windows server 2016 的nginx配置的
include 函数不一样,难道是版 不同?2019用的是 1202 ,这次2016用的是1253

1202–nginx.conf–include conf/conf.d/.conf; 1253–nginx.conf–include conf.d/.conf;

两个版本的相对路径的寻址方式不一样

4.gitee
280810342@qq.com
Lht

5.redis –采用github上提供的windows安装文件进行安装

安装文件是把redis 安装为了一个 windows的服务,配置文件在安装目录
修改配置文件的密码后,需要重启服务即可

6.test jar

用 java -jar 验证jar可以在前台启动

后台启动jar命令如下—windows server2016 ,在dos命令窗口执行

java 进程 用jps —系统环境变量–是jdk 8u371 因此 jps展示的是 在这个jdk 的运行时的 jar 包

规避了 jenkins的 java 环境–jdk21

因此基于jps 发现 正在运行 的admin -jar ,kill,然后启动。

start /B java -jar .\jnpf-admin-3.4.1-RELEASE.jar –spring.profiles.active=test > output.log 2>&1

7.test war
copy dist to d:\opt\nginx1253\html

copy-dist-html.bat

@echo off
set "sourcedir=C:\ProgramData\Jenkins\.jenkins\workspace\mom-war\dist"
set "targetdir=D:\opt\nginx1253\html\"

echo CLEAN TARGETDIR
del /Q "%targetdir%\*" >nul 2>&1


xcopy /E /I /Y "%sourcedir%\*" "%targetdir%"

echo COPIED

copy-jar-bat

@echo off

set "sourcedir=C:\ProgramData\Jenkins\.jenkins\workspace\mom-boot-win2016\jnpf-admin\target"
set "targetdir=D:\mom\jar"
set "jarfilename=jnpf-admin-3.4.1-RELEASE.jar"


REM 判断文件是否存在
if exist "%targetdir%\%jarfilename%" (
    REM 删除目标文件
    del /Q "%targetdir%\%jarfilename%"
    echo 删除文件成功!
) else (
    echo 文件不存在,无需删除。
)

REM 复制文件
xcopy /Y "%sourcedir%\%jarfilename%" "%targetdir%"



echo COPY执行完成!

START-JAR.BAT




@echo off
set "targetdir=D:\mom\jar"
set "jarfilename=jnpf-admin-3.4.1-RELEASE.jar"

REM 停止进程
for /f "tokens=1,2" %%a in ('jps -l ^| findstr "%jarfilename%"') do (
    taskkill /F /PID %%a
    echo Terminated process with PID %%a
)

REM 等待 10 秒
timeout /T 10 /nobreak > nul

REM 启动文件

start /B java -jar .\jnpf-admin-3.4.1-RELEASE.jar --spring.profiles.active=test > output.log 2>&1

tasklist /FI "IMAGENAME eq java.exe"

echo star jar执行完成!

start-jar.bat-javaw

@echo off
set "targetdir=D:\mom\jar"
set "jarfilename=jnpf-admin-3.4.1-RELEASE.jar"
set "jarreportfilename=jnpf-datareport-3.2.17-RELEASE.jar"


REM 当前正在运行的所有javaw进程
echo 当前正在运行的所有javaw进程
tasklist /FI "IMAGENAME eq javaw.exe"


REM 停止进程
echo 停止进程
for /f "tokens=2" %%a in ('tasklist /FI "IMAGENAME eq javaw.exe" ^| findstr /i "javaw.exe"') do (
    echo %%a
    taskkill /F /PID %%a
    echo Terminated process with PID %%a
)

REM 等待 10 秒
echo 等待 10 秒
timeout /T 10 /nobreak > nul
REM 启动文件
echo 启动文件执行如下命令
echo "start javaw -jar %targetdir%\%jarfilename% --spring.profiles.active=test"
start javaw -jar "%targetdir%\%jarfilename%" --spring.profiles.active=test 
start javaw -jar "%targetdir%\%jarreportfilename%" > dataoutput.log 2>&1


echo 查看当前javaw进程
tasklist /FI "IMAGENAME eq javaw.exe"

echo star jar执行完成!