zoukankan      html  css  js  c++  java
  • Jenkins构建脚本中启动tomcat关键

    一、启动tomcat

    来源:

    http://blog.csdn.net/prisonbreak_/article/details/50749576(给出方法)

    http://veryyoung.me/blog/2016/04/19/jenkins-backgroud-process.html(给出方法+解释原因)

    在网上查了资料,需要在执行脚本之前加入:export BUILD_ID=XXXXXX

    XXXXX可以随便写的什么

    具体原因还不知道,以后研究了,再来补充。

    这里我就来补充一下咯(又是我copy的):

    今天在配置 Jenkins Job 的时候,after mvn package 用命令行 nohup java -jar project-1.0-SNAPSHOT.jar > server.log 2>&1 & 起一个 spring-boot 项目,死活不生效。

    ssh 到服务器上查不到对应的进程,而直接在服务器上执行是完全 OK 的。

    Google 一番后得知,这是 Jenkins 的特性。

    To reliably kill processes spawned by a job during a build, Jenkins contains a bit of native code to list up such processes and kill them. This is tested on several platforms and architectures, but if you find a show-stopper problem because of this, you can disable this feature by setting a Java property named “hudson.util.ProcessTree.disable” to the value “true”. This can be done as a parameter to the “java” binary when starting Jenkins:

    `java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war`
    The ProcessTreeKiller takes advantage of the fact that by default a new process gets a copy of the environment variables of its spawning/creating process.

    It sets a specific environment variable in the process executing the build job. Later, when the user requests to stop the build job’s process it gets a list of all processes running on the computer and their environment variables, and looks for the environment variable that it initially set for the build job’s process.

    具体链接请点击 ProcessTreeKiller

    大概意思是 Jenkins 是在启动 Job 的时候会给子进程设置环境变量,在结束 Job 的时候会检查进程的环境变量,如果包含 Jenkins 生成的,kill 掉。

    解决方案:

    启动 Jenkins 的时候加上 -Dhudson.util.ProcessTree.disable=true,也就是 java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war
    在后台进程前加上 BUILD_ID=dontKillMe, 也就是 BUILD_ID=dontKillMe nohup java -jar project-1.0-SNAPSHOT.jar > server.log 2>&1 &

    二、maven构建的时候忽略Javadoc

    maven构建的时候,忽略Javadoc可以加快速度

    mvn clean package -D maven.javadoc.skip=true

  • 相关阅读:
    EMQ 解决方案之云平台物联网消息队列解决方案
    EMQ X Broker 3.1 Beta.2 发布
    MQTT 与 Kafka
    EMQ X 助力运营商搭建大规模 NBIoT 平台
    MQTT5.0 消息发布流程
    MQTT 5.0 新特性 |(一) 属性与载荷
    MQTT 5.0 正式成为OASIS标准
    Nginx + Docker 手动集群方式运行 EMQ
    WJQ与机房
    P1505 [国家集训队]旅游
  • 原文地址:https://www.cnblogs.com/tuhooo/p/8028896.html
Copyright © 2011-2022 走看看