JAVA环境部署


Docker环境

安装Docker

安装docker-compose

配置docker国内镜像。推荐:毫秒镜像

防火墙设置

为了后续的测试方便,先停用防火墙,并重启docker

# 停用防火前
systemctl stop firellwd
# 重启docker
systemctl restart docker

Nacos

nacos部署文件 docker-compose-nacos.yml

Markup 全选
version: "2"
services:
  nacos:
    image: nacos/nacos-server:v2.3.0
    container_name: nacos-server
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=192.168.110.193
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - MYSQL_SERVICE_PORT=33061
      - MYSQL_SERVICE_USER=nacos
      - MYSQL_SERVICE_PASSWORD=*****
    ports:
      - "8848:8848"
      - "9555:9555"
      - "9848:9848"
      - "9849:9849"
    restart: on-failure

安装并运行容器

Markup 全选
docker-compose -f docker-compose-nacos.yml up -d

测试访问Nacos

访问地址:http://*:8848/nacos/

注意:网址中一定要加上/nacos,不然无法正常访问

minio

minio部署文件 docker-compose-minio.yml

Markup 全选
version: '3.4'
services:
    minio:
      image: minio/minio:RELEASE.2024-08-03T04-33-23Z
      container_name: minio
      ports:
        - "9000:9000"
        - "9009:9009"
      restart: always
      command: server /data --console-address ":9009"
      environment:
        MINIO_ROOT_USER: minio
        MINIO_ROOT_PASSWORD: minio123 
      logging:
        options:
          max-size: "50M" # 最大文件上传限制
          max-file: "10"
        driver: json-file
      volumes:
        - /data/minio/data:/data # 映射文件路径
        # - ~/data/minio/etc/localtime:/etc/localtime:ro
        # - ~/data/minio/etc/timezone/timezone:/etc/timezone:ro
      healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
        interval: 30s
        timeout: 20s
        retries: 3

安装并运行容器

Markup 全选
docker-compose -f docker-compose-minio.yml up -d

测试访问minio

访问端口:9000

minio默认账号密码在docker-compose-minio.yml文件中配置的

rocketmq

rocketmq部署文件 docker-compose-rocketmq.yml

Markup 全选
version: '3.5'
services:
  rmqnamesrv:
    image: docker.1ms.run/foxiswho/rocketmq:server
    container_name: rmqnamesrv
    restart: always
    ports:
      - 9876:9876
    volumes:
      - /data/rocketmq/namesrv/logs:/opt/logs
      - /data/rocketmq/namesrv/store:/opt/store

  rmqbroker:
    image: docker.1ms.run/foxiswho/rocketmq:broker
    container_name: rmqbroker
    restart: always
    ports:
      - 10909:10909
      - 10911:10911
    volumes:
      - /data/rocketmq/broker/logs:/opt/logs
      - /data/rocketmq/broker/store:/opt/store
      - /data/rocketmq/broker/conf/broker.conf:/etc/rocketmq/broker.conf
    environment:
        NAMESRV_ADDR: "rmqnamesrv:9876"
        JAVA_OPTS: " -Duser.home=/opt"
        JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: mqbroker -c /etc/rocketmq/broker.conf
    depends_on:
      - rmqnamesrv
  rmqconsole:
    image: docker.1ms.run/styletang/rocketmq-console-ng
    container_name: rmqconsole
    restart: always
    ports:
      - 18010:8080
    environment:
        JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
      - rmqnamesrv

安装并启动容器

Markup 全选
docker-compose -f docker-compose-rocketmq.yml up -d

JAVA环境部署

修改 rocketmq的节点配置文件

rocketmq的broker节点的配置文件

配置文件在docker-compose-rocketmq.yml中有指定

JAVA环境部署

需要删除生成的broker.conf文件夹,创建broker.conf文件

JAVA环境部署

broker.conf文件夹内容

将namesrvAddr修改为rocketmq安装的服务器IP

Markup 全选
brokerClusterName=ZYCluster
#broker名字
brokerName=broker-a
#0表示Master,>0表示Slave
brokerId=0
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48

brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876
defaultTopicQueueNums=4
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
listenPort=10911
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000

brokerIP1=127.0.0.1

测试访问rocketmq

访问:127.0.0.1:18010

可访问rocketmq

JAVA环境部署

 

 

 

都启动后的截图

JAVA环境部署

安装nexus

docker-compose-nexus.yml文件内容

Markup 全选
version: '3.2'
services:
  nexus3:
    image: docker.1ms.run/sonatype/nexus3:3.70.4
    container_name: nexus3
    restart: always
    ports:
      - "8081:8081"
    volumes:
      - /data:/nexus-data

安装容器

启用容器安装命令前,先确保 /data/nuxus文件夹存在,并且给与了足够权限

如果不给权限,容器启动会报错。

Markup 全选
docker-compose -f docker-compose-nexus.yml up -d

启动后,访问8081端口

JAVA环境部署

初始admin登陆密码在/data/nexus/admin.password文件中记录

JAVA环境部署

 

安装JDK

JDK下载地址:https://www.oracle.com/java/technologies/downloads/?er=221886#java21

下载JDK 17

JAVA环境部署

创建目录: /usr/local/jdk/

Markup 全选
mkdir -p /usr/local/jdk

下载好的jdk-17.0.14_linux-x64_bin.rpm文件上传到 /usr/local/jdk/目录下

JAVA环境部署

执行命令安装

Markup 全选
rpm -ivh jdk-17.0.14_linux-x64_bin.rpm

JAVA环境部署

输入命令校验安装是否成功

JAVA环境部署

如果不行,尝试下面步骤

添加环境变量

修改 /etc/profile文件,末尾添加下面代码

Markup 全选
export JAVA_HOME=/usr/java/default(jdk所在目录,通过 pwd 命令查看目录)
export JRE_HOME=\$JAVA_HOME/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

过source命令重新加载/etc/profile文件,使得修改后的内容在当前shell窗口有效:

Markup 全选
source /etc/profile

安装Maven

下载地址:https://maven.apache.org/download.cgi

JAVA环境部署

3.6.3版本下载地址:https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/

下载后,解压缩,apache-maven-3.6.3文件夹上传到/etc目录

设置Maven 国内镜像地址(这里采用阿里云)

 

配置Maven环境变量

修改文件/etc/profile 在末尾添加如下内容

Markup 全选
export JAVA_HOME=/usr/java/default(jdk所在目录,通过 pwd 命令查看目录)
export JRE_HOME=\$JAVA_HOME/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export MAVEN_HOME=/etc/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
export PATH MAVEN_HOME JAVA_HOME

重载配置文件

Markup 全选
source /etc/profile

输入 mvn -v查看是否正确配置

Markup 全选
mvn -v

JAVA环境部署

如果提示权限不够,修改appache-maven-3.6.3/bin/mvn文件权限

C# 全选
chmod 755 /etc/apache-maven-3.6.3/bin/mvn

JAVA环境部署

修改后,查看版本应该是:

JAVA环境部署

 

参考:CentOS7——安装配置Maven(Apache Maven)_centos7安装maven的setting文件-CSDN博客

 

安装GIT

执行命令 yum -y install git 安装git

Markup 全选
yum -y install git

安装后输入 git --version 验证是否安装成功

Markup 全选
git --version

JAVA环境部署

安装Jenkins流水线安装

下载Jenkins.war文件,下载地址:https://www.jenkins.io/download/

JAVA环境部署

下载后,把下载的文件上传到root目录下

JAVA环境部署

root中新建脚本 start_jenkins.sh,脚本内容为

Markup 全选
nohup java -jar jenkins.war --httpPort=18888 &

运行:

Markup 全选
sh start_jenkins.sh

JAVA环境部署

查看nohup.out文件如果出现如下报错:

Markup 全选
Running from: /root/jenkins.war
webroot: /root/.jenkins/war
2025-02-28 02:29:38.489+0000 [id=1]	INFO	winstone.Logger#logInternal: Beginning extraction from war file
2025-02-28 02:29:40.317+0000 [id=1]	WARNING	o.e.j.ee9.nested.ContextHandler#setContextPath: Empty contextPath
2025-02-28 02:29:40.388+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStart: jetty-12.0.16; built: 2024-12-09T21:02:54.535Z; git: c3f88bafb4e393f23204dc14dc57b042e84debc7; jvm 17.0.14+8-LTS-191
2025-02-28 02:29:40.880+0000 [id=1]	INFO	o.e.j.e.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.ee9.jsp.JettyJspServlet
2025-02-28 02:29:40.945+0000 [id=1]	INFO	o.e.j.s.DefaultSessionIdManager#doStart: Session workerName=node0
2025-02-28 02:29:41.471+0000 [id=1]	INFO	hudson.WebAppMain#contextInitialized: Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
2025-02-28 02:29:41.537+0000 [id=1]	SEVERE	hudson.util.BootFailure#publish: Failed to initialize Jenkins
java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration
	at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1269)
	at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:224)
	at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:106)
	at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706)
	at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:358)
	at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:315)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:315)
	at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
	at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
Caused: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:85)
Caused: java.lang.InternalError
	at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:87)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:75)
	at java.desktop/java.awt.Font.getFont2D(Font.java:526)
	at java.desktop/java.awt.Font.getFamily(Font.java:1436)
	at java.desktop/java.awt.Font.getFamily_NoClientCode(Font.java:1410)
	at java.desktop/java.awt.Font.getFamily(Font.java:1402)
	at java.desktop/java.awt.Font.toString(Font.java:1895)
	at hudson.util.ChartUtil.<clinit>(ChartUtil.java:270)
	at hudson.WebAppMain.contextInitialized(WebAppMain.java:219)
Caused: hudson.util.AWTProblem
	at hudson.WebAppMain.contextInitialized(WebAppMain.java:220)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.callContextInitialized(ContextHandler.java:900)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:596)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.contextInitialized(ContextHandler.java:837)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler.initialize(ServletHandler.java:743)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.startContext(ServletContextHandler.java:364)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.startWebapp(WebAppContext.java:1358)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.startContext(WebAppContext.java:1319)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doStartInContext(ContextHandler.java:694)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1446)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doStart(ContextHandler.java:678)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.doStart(ServletContextHandler.java:278)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.doStart(WebAppContext.java:529)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler.lambda$doStart$0(ContextHandler.java:754)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1452)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:754)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler$CoreContextHandler.doStart(ContextHandler.java:2727)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:132)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.start(Server.java:641)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.doStart(Server.java:582)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//winstone.Launcher.<init>(Launcher.java:190)
	at Jenkins Main ClassLoader//winstone.Launcher.main(Launcher.java:490)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at executable.Main.main(Main.java:335)
2025-02-28 02:29:41.810+0000 [id=1]	WARNING	o.e.j.ee9.webapp.WebAppContext#doStart: Failed startup of context w.HostConfiguration$@53830483{Jenkins v2.492.1,/,file:///root/.jenkins/war/,false}{/root/.jenkins/war}
java.lang.IllegalStateException: Jenkins.instance is missing. Read the documentation of Jenkins.getInstanceOrNull to see what you are doing wrong.
	at jenkins.model.Jenkins.get(Jenkins.java:803)
	at hudson.util.BootFailure.publish(BootFailure.java:55)
	at hudson.WebAppMain.contextInitialized(WebAppMain.java:299)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.callContextInitialized(ContextHandler.java:900)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:596)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.contextInitialized(ContextHandler.java:837)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler.initialize(ServletHandler.java:743)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.startContext(ServletContextHandler.java:364)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.startWebapp(WebAppContext.java:1358)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.startContext(WebAppContext.java:1319)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doStartInContext(ContextHandler.java:694)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1446)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doStart(ContextHandler.java:678)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.doStart(ServletContextHandler.java:278)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.doStart(WebAppContext.java:529)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler.lambda$doStart$0(ContextHandler.java:754)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1452)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:754)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler$CoreContextHandler.doStart(ContextHandler.java:2727)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:132)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.start(Server.java:641)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.doStart(Server.java:582)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//winstone.Launcher.<init>(Launcher.java:190)
	at Jenkins Main ClassLoader//winstone.Launcher.main(Launcher.java:490)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at executable.Main.main(Main.java:335)
2025-02-28 02:29:41.817+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStop: Stopped oejs.Server@36060e{STOPPING}[12.0.16,sto=0]
2025-02-28 02:29:41.822+0000 [id=1]	INFO	winstone.Logger#logInternal: Jetty shutdown successfully
java.io.IOException: Failed to start Jetty
	at Jenkins Main ClassLoader//winstone.Launcher.<init>(Launcher.java:194)
	at Jenkins Main ClassLoader//winstone.Launcher.main(Launcher.java:490)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at executable.Main.main(Main.java:335)
Caused by: java.lang.IllegalStateException: Jenkins.instance is missing. Read the documentation of Jenkins.getInstanceOrNull to see what you are doing wrong.
	at jenkins.model.Jenkins.get(Jenkins.java:803)
	at hudson.util.BootFailure.publish(BootFailure.java:55)
	at hudson.WebAppMain.contextInitialized(WebAppMain.java:299)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.callContextInitialized(ContextHandler.java:900)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:596)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.contextInitialized(ContextHandler.java:837)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler.initialize(ServletHandler.java:743)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.startContext(ServletContextHandler.java:364)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.startWebapp(WebAppContext.java:1358)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.startContext(WebAppContext.java:1319)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doStartInContext(ContextHandler.java:694)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1446)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doStart(ContextHandler.java:678)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.doStart(ServletContextHandler.java:278)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.doStart(WebAppContext.java:529)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler.lambda$doStart$0(ContextHandler.java:754)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1452)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:754)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler$CoreContextHandler.doStart(ContextHandler.java:2727)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:132)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.start(Server.java:641)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.doStart(Server.java:582)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//winstone.Launcher.<init>(Launcher.java:190)
	... 6 more
2025-02-28 02:29:41.824+0000 [id=1]	SEVERE	winstone.Logger#logInternal: Container startup failed
java.lang.IllegalStateException: Jenkins.instance is missing. Read the documentation of Jenkins.getInstanceOrNull to see what you are doing wrong.
	at jenkins.model.Jenkins.get(Jenkins.java:803)
	at hudson.util.BootFailure.publish(BootFailure.java:55)
	at hudson.WebAppMain.contextInitialized(WebAppMain.java:299)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.callContextInitialized(ContextHandler.java:900)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:596)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.contextInitialized(ContextHandler.java:837)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletHandler.initialize(ServletHandler.java:743)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.startContext(ServletContextHandler.java:364)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.startWebapp(WebAppContext.java:1358)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.startContext(WebAppContext.java:1319)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doStartInContext(ContextHandler.java:694)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1446)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler.doStart(ContextHandler.java:678)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.servlet.ServletContextHandler.doStart(ServletContextHandler.java:278)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.webapp.WebAppContext.doStart(WebAppContext.java:529)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler.lambda$doStart$0(ContextHandler.java:754)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1452)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:754)
	at Jenkins Main ClassLoader//org.eclipse.jetty.ee9.nested.ContextHandler$CoreContextHandler.doStart(ContextHandler.java:2727)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:132)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.start(Server.java:641)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
	at Jenkins Main ClassLoader//org.eclipse.jetty.server.Server.doStart(Server.java:582)
	at Jenkins Main ClassLoader//org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at Jenkins Main ClassLoader//winstone.Launcher.<init>(Launcher.java:190)
Caused: java.io.IOException: Failed to start Jetty
	at Jenkins Main ClassLoader//winstone.Launcher.<init>(Launcher.java:194)
	at Jenkins Main ClassLoader//winstone.Launcher.main(Launcher.java:490)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at executable.Main.main(Main.java:335)

分析原因是系统中缺少字体文件

运行fc-list查看系统中字体

JAVA环境部署

如果提示fc-list命令不存在,执行命令yum install fontconfig安装

参考:https://commandnotfound.cn/linux/1/557/fc-list-%E5%91%BD%E4%BB%A4

执行命令:yum -y install fontconfig 安装 fontconfig 和相关字体包

Markup 全选
yum -y install fontconfig

然后再次运行jenkins

Markup 全选
sh start_jenkins.sh

完事后看nohup.out文件输出如下内容,代表启动成功

Markup 全选
Running from: /root/jenkins.war
webroot: /root/.jenkins/war
2025-02-28 03:12:08.830+0000 [id=1]	INFO	winstone.Logger#logInternal: Beginning extraction from war file
2025-02-28 03:12:08.918+0000 [id=1]	WARNING	o.e.j.ee9.nested.ContextHandler#setContextPath: Empty contextPath
2025-02-28 03:12:08.996+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStart: jetty-12.0.16; built: 2024-12-09T21:02:54.535Z; git: c3f88bafb4e393f23204dc14dc57b042e84debc7; jvm 17.0.14+8-LTS-191
2025-02-28 03:12:09.489+0000 [id=1]	INFO	o.e.j.e.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.ee9.jsp.JettyJspServlet
2025-02-28 03:12:09.554+0000 [id=1]	INFO	o.e.j.s.DefaultSessionIdManager#doStart: Session workerName=node0
2025-02-28 03:12:10.086+0000 [id=1]	INFO	hudson.WebAppMain#contextInitialized: Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
2025-02-28 03:12:10.219+0000 [id=1]	INFO	o.e.j.s.handler.ContextHandler#doStart: Started oeje9n.ContextHandler$CoreContextHandler@30b34287{Jenkins v2.492.1,/,b=file:///root/.jenkins/war/,a=AVAILABLE,h=oeje9n.ContextHandler$CoreContextHandler$CoreToNestedHandler@5489c777{STARTED}}
2025-02-28 03:12:10.232+0000 [id=1]	INFO	o.e.j.server.AbstractConnector#doStart: Started ServerConnector@43c67247{HTTP/1.1, (http/1.1)}{0.0.0.0:18888}
2025-02-28 03:12:10.244+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStart: Started oejs.Server@147ed70f{STARTING}[12.0.16,sto=0] @2075ms
2025-02-28 03:12:10.245+0000 [id=26]	INFO	winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2025-02-28 03:12:10.418+0000 [id=25]	INFO	jenkins.model.Jenkins#<init>: Starting version 2.492.1
2025-02-28 03:12:10.517+0000 [id=34]	INFO	jenkins.InitReactorRunner$1#onAttained: Started initialization
2025-02-28 03:12:10.531+0000 [id=44]	INFO	jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2025-02-28 03:12:11.565+0000 [id=46]	INFO	jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2025-02-28 03:12:11.570+0000 [id=46]	INFO	jenkins.InitReactorRunner$1#onAttained: Started all plugins
2025-02-28 03:12:11.572+0000 [id=37]	INFO	jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2025-02-28 03:12:11.750+0000 [id=37]	INFO	jenkins.InitReactorRunner$1#onAttained: System config loaded
2025-02-28 03:12:11.751+0000 [id=35]	INFO	jenkins.InitReactorRunner$1#onAttained: System config adapted
2025-02-28 03:12:11.751+0000 [id=45]	INFO	jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2025-02-28 03:12:11.753+0000 [id=37]	INFO	jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2025-02-28 03:12:11.776+0000 [id=60]	INFO	hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2025-02-28 03:12:12.116+0000 [id=44]	INFO	jenkins.install.SetupWizard#init: 

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

0fb24da955ae480988d6bad3b5803c56

This may also be found at: /root/.jenkins/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

2025-02-28 03:12:18.247+0000 [id=44]	INFO	jenkins.InitReactorRunner$1#onAttained: Completed initialization
2025-02-28 03:12:18.258+0000 [id=25]	INFO	hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running

访问Jenkins

jenkins访问端口:18888 (在start_jenkins.sh文件中配置的端口)

JAVA环境部署

初始密码,在nohup.out文件中

JAVA环境部署

 

打开如果提示报错

JAVA环境部署

进入插件管理界面的 Advanced settings 高级设置面板,在该面板中找到 Update Size 更新升级站点,将其中 URL,即 Jenkins 插件下载源修改更换为国内镜像,然后点击提交保存

Markup 全选
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

JAVA环境部署

JAVA环境部署

 

https://blog.csdn.net/weixin_53742691/article/details/139269989

Jenkins流水线配置

1. 配置JDK 1.8

 由于jenkins需要jdk17,而项目的jdk是1.8,因此,需要在jenkins里面配置jdk1.8的信息

下载JDK 1.8 ,对应java 8u**版本 下载地址: https://repo.huaweicloud.com/java/jdk/8u202-b08/

JAVA环境部署

下载后,上传到/etc目录

JAVA环境部署

输入命令解压文件:

Markup 全选
tar -zxvf jdk-8u202-linux-x64.tar.gz 

解压后:

JAVA环境部署

打开Manage Jenkins Tools配置页面

JAVA环境部署

配置JDK,JAVA_HOME需要和自己解压的文件名保持一致

JAVA环境部署

2. 配置maven信息

进入配置-工具,配置maven信息

JAVA环境部署

 

 

 

 

 

 

 

 

 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:git批量克隆仓库代码以及批量上传
下一篇:Jenkins工具配置
评论列表

发表评论

评论内容
昵称:
关联文章

JAVA环境部署
YESWEB项目 生产环境部署
JAVA Spring BootURL 忽略大小写
热更新部署
CentOS安装java
java项目集成nacos,实现配置加载以及服务子发现
mysql服务器端运行环境要求
Nginx部署
.NET Core 项目windows server中部署
JAVA JDK官方下载地址
JAVA SAP JCO集成
《步步入门》 .NET 6 部署到Linux
Elasticsearch使用系列-ES简介和环境搭建
vue 编译不同环境
.net Core项目 IIS部署运行异常信息输出
YES-CMS 内容管理系统 快速发布与部署
YESWEB项目部署
监察易部署
VScode配置Python开发环境
RabbitMQ服务器环境搭建方法(Windows)

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码