詹金斯构建问题

时间:2013-07-16 20:51:59

标签: maven ant jenkins

我是Jenkins的新手,无论我在哪里尝试检查代码(Git,SVN等),我都会收到以下错误。我在Tomcat 6.0.37上使用Jenkins 1.514和oracle JDK 1.7.0_25,并收到以下错误。

我已经下载并配置了相关的插件,并且检查连接测试成功,所以我知道Jenkins能够与存储库服务器进行通信。

我已将Jenkins配置为使用相同版本的Java(1.6),Maven(3.0.5)和Ant(1.9.1)在本地和Jenkins所在的远程服务器上构建我的项目。但是,我认为构建不会下载代码。

我做错了什么?这可能是我用来启动Jenkins运行的Tomcat服务器的JDK的某种问题吗?

谢谢,      肖恩

构建失败,并将以下信息发送到控制台:

  

致命:(类:org / apache / commons / codec / binary / Base64OutputStream,   方法:签名:(Ljava / io / OutputStream; ZI [B] V)不兼容   函数FATAL的参数:(类:   org / apache / commons / codec / binary / Base64OutputStream,方法:   签名:(Ljava / io / OutputStream; ZI [B] V)不兼容的参数   function已完成:null

日志文件说:

  

2013年7月16日下午2:17:31 hudson.model.listeners.RunListener报告   警告:RunListener失败了java.lang.NullPointerException           在hudson.model.PermalinkProjectAction $ Permalink $ 3.apply(PermalinkProjectAction.java:134)           在jenkins.model.PeepholePermalink $ RunListenerImpl.onCompleted(PeepholePermalink.java:194)           在hudson.model.listeners.RunListener.fireCompleted(RunListener.java:199)           在hudson.model.Run.execute(Run.java:1625)           在hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)           在hudson.model.ResourceController.execute(ResourceController.java:88)           在hudson.model.Executor.run(Executor.java:241)

     

2013年7月16日下午2:17:31 hudson.model.Run onEndBuilding警告:   McWebAccessWS#7:没有设置构建结果,因此标记为失败。这个   不应该发生。 2013年7月16日下午2:17:31 hudson.model.Executor运行   严重:执行者抛出异常java.lang.VerifyError :(类:   org / apache / commons / codec / binary / Base64OutputStream,方法:   签名:( Ljava / io / OutputSt ream; ZI [B] V)不兼容的参数   功能           at hudson.console.ConsoleNote.encodeToBytes(ConsoleNote.java:180)           在hudson.console.ConsoleNote.encodeTo(ConsoleNote.java:158)           在hudson.util.StreamTaskListener.annotate(StreamTaskListener.java:157)           在hudson.util.StreamTaskListener._error(StreamTaskListener.java:132)           at hudson.util.StreamTaskListener.fatalError(StreamTaskListener.java:149)           在hudson.model.Run.handleFatalBuildProblem(Run.java:1659)           在hudson.model.Run.execute(Run.java:1605)           在hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)           在hudson.model.ResourceController.execute(ResourceController.java:88)           在hudson.model.Executor.run(Executor.java:241)

3 个答案:

答案 0 :(得分:3)

让我们变得非常非常简单:

  • Jenkins有自己的内置Application servlet。让我们尝试一下,消除因Tomcat引起的任何复杂性。
  • Jenkins应该内置Subversion插件。我不知道Git插件是否内置。
  • Jenkins从Manage Jenkins-> Configure System安装其工具。它在JENKINS_HOME目录下安装工具。我们会这样做的。

关闭詹金斯。并尝试从命令行运行它目录:

$ java -jar jenkins.jar

使用默认的Jenkins主页(我相信是.jenkins)和默认端口(8080)。我们只是试图让一切都安装好。

  • 不要安装任何插件。不要安装任何安全性。我们现在正试图让Jenkins立即办理结账。

  • 如果你能让Jenkins启动并运行,那就该设置一个测试工作了。这项工作唯一要做的就是结账,只有当你按下 Build 按钮时才会结账。有一件事,让我们试着让结账工作。首先使用Subversion项目。 Subversion。

  • 点击 新作业 。创造一份工作。给作业命名并使其成为自由风格作业。一次一件事。

  • 在“新建作业”中,转到“源代码管理”并选择“Subversion”。将完整的存储库URL放入项目中。确保*本地模块目录为.,选择无穷大,并采用默认值。

如果Subversion找不到存储库,它会给你一个错误。如果无法登录,则会在URL框下方显示一个链接。单击该链接并进行登录。

  • 保存工作。此作业将 结帐,并且仅在请求时进行检查。一步一步。

  • 现在,转到刚刚创建的作业,然后单击 Build 按钮。它应该给你一个正在构建的Build#。单击该内部版本号。现在点击控制台输出,查看结帐是否有效。

确保结帐工作正常。它没有,在控制台输出上显示任何内容它应显示如下内容:

Started by an anonymous
Building in workspace /opt/.jenkins/jobs/test/workspace
Checking out http://svn.mycorp.com/svn/trunk/project at revision '2013-07-03T11:48:44.326 -0500'
(Checkout)

如果不起作用。使用控制台输出的输出更新您的问题。这实际上比Tomcat日志更重要。

答案 1 :(得分:0)

这对我来说是一个典型的用户错误。我正在使用Serena Dimensions插件,插件需要将一些特定于Serena的jar文件复制到jenkins的WEB-INF / lib。

好吧,我复制了所需的jar并无意中复制了一个额外的:commons-codec-1.3.jar。这是一个问题,因为commons-codec-1.6.jar已经存在于WEB-INF / lib中;所以,由于1.3版本在类路径中被提升得更高,因此需要v1.6 Base64OutputStream的其他类获得了v1.3,而不是上面的错误。

愚蠢税有时会很痛苦。希望这有助于其他人。

  • 肖恩

答案 2 :(得分:0)

注意有相关的https://issues.jenkins-ci.org/browse/JENKINS-19643,而SeanLon11写道,这是由commons-codec的不兼容版本引起的(Tomcat容器/ Jenkins /插件/ swarm客户端用于从属节点)。