Jenkins外部监视器作业设置

Jenkins外部监视器作业设置,jenkins,cron,Jenkins,Cron,我是詹金斯的新手。我想让詹金斯监视我的亲信。我将遵循官方教程: 詹金斯正在AWS Ubuntu 14上运行。安装很好,我可以通过9091访问Jenkins。 默认情况下已安装外部监视器作业插件。可以在插件管理器中找到它 到目前为止我做了什么。 在詹金斯身上,我创建了一个名为“备份”的新外部作业。基本上就这些了 在我的cron文件中:“/var/spool/cron/crontab/root”: 由于mailto设置,我最初收到的没有jenkins core-*.jar发现错误。我开始寻找je

我是詹金斯的新手。我想让詹金斯监视我的亲信。我将遵循官方教程:

詹金斯正在AWS Ubuntu 14上运行。安装很好,我可以通过9091访问Jenkins。

默认情况下已安装外部监视器作业插件。可以在插件管理器中找到它

到目前为止我做了什么。 在詹金斯身上,我创建了一个名为“备份”的新外部作业。基本上就这些了

在我的cron文件中:“/var/spool/cron/crontab/root”:

由于
mailto
设置,我最初收到的
没有jenkins core-*.jar发现错误
。我开始寻找
jenkins core-*.jar
,但没有找到。在我的“/usr/share/jenkins”文件夹中只有
jenkins.war
文件。我解压缩了.war文件并将以下文件复制到它的文件夹中:

jenkins-core-*.jar
remoting-*.jar
ant-1.7.0.jar
commons-io-1.4jar
commons-lang-2.4.jar
jna-posix-*.jar
xstream-*.jar
在我这样做之后,我开始收到更复杂的错误:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at hudson.Main.<clinit>(Main.java:222)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 13 more
线程“main”java.lang.NoClassDefFoundError中的异常:javax/servlet/ServletContextListener 位于java.lang.ClassLoader.defineClass1(本机方法) 位于java.lang.ClassLoader.defineClass(ClassLoader.java:803) 位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 位于java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在java.net.URLClassLoader$1.run(URLClassLoader.java:355) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:354) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:425) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在hudson.Main.(Main.java:222) 原因:java.lang.ClassNotFoundException:javax.servlet.ServletContextListener 在java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在java.net.URLClassLoader$1.run(URLClassLoader.java:355) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:354) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:425) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 还有13个
正如所料,詹金斯一方没有任何进展。很明显我错过了什么。我试图删除
“backup”
周围的引号,并用我确信有效的东西更改命令
backup.sh2>&1>/dev/null
。例如:
cd/my/directory&&program myfile.file
但仅此而已。我想知道是否必须将整个.war文件解压缩到某个地方,或者是否需要遵循不同的路径?我不知道这个错误是什么意思。我发现有人暗示它把Tomcat搞砸了。请提供一些帮助。

您使用的是哪个java和jenkins版本

我配置了jenkins,并且工作正常,没有任何问题,但是在一次升级之后,我开始出现同样的错误

我的环境是:

  • Debian 8
  • 詹金斯2.13
  • java 1.7.0_101(IcedTea)

我通过将Jenkins降级到2.2,实现了一种变通方法

据ServletContextListener介绍,它是在2.3中引入的。我从中抓取了一个旧的WAR,然后用它安装了一个WAR

作为参考,我使用的是Centos 7和Java 1.8.0_101


希望有一个更持久的解决方案。

你知道这个问题是什么吗?在这个问题上花了很多时间后,我终于把所有的东西都转移到了Freestyle项目中。这是一种更方便、更简单的方式,而且我没有那么多线路需要管理。我使用的配置或多或少都是相同的,而且在2016-05-11升级后,它开始失败。你有没有找到永久的解决方案或工作?
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at hudson.Main.<clinit>(Main.java:222)
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 13 more