我是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)
答案 0 :(得分:3)
让我们变得非常非常简单:
关闭詹金斯。并尝试从命令行运行它目录:
$ 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客户端用于从属节点)。