我试图能够单步执行名为 SVNPublisher 的 Hudson 插件的代码。我查看了 SVNPublisher 的代码,使用 Netbeans 打开项目,然后单击“调试主项目”。这会导致 Firefox 窗口打开地址http://localhost:8080,其中显示了 Hudson 主页。单击“新建作业”链接会导致错误页面:
HTTP ERROR: 500
jar:file:/home/francis/svn/svnpublisher/target/work/webapp/WEB-INF/lib/hudson-core-1.319.jar!/lib/hudson/newFromList/form.jelly:43:47: <j:forEach> hudson.scm.SubversionTagAction and hudson.scm.SubversionTagAction$DescriptorImpl disagree on InnerClasses attribute
RequestURI=/newJob
Caused by:
org.apache.commons.jelly.JellyTagException: jar:file:/home/francis/svn/svnpublisher/target/work/webapp/WEB-INF/lib/hudson-core-1.319.jar!/lib/hudson/newFromList/form.jelly:43:47: hudson.scm.SubversionTagAction and hudson.scm.SubversionTagAction$DescriptorImpl disagree on InnerClasses attribute
at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:713)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:282)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
...
Run Code Online (Sandbox Code Playgroud)
我对 Hudson 很陌生,对 Java 不是很熟悉,所以我对这个错误的含义几乎一无所知。
任何人都可以帮忙吗?
我想知道是否有办法在Hudson(或任何各种插件)中执行此操作.我的IDEAL场景:
我想通过类似REST的API触发基于作业的构建,并且在该构建上,我希望它返回一个作业ID.之后,我想调查此ID以查看其状态.完成后,我希望看到状态和内部版本号.
现在,因为我似乎无法实现这一点,这是我目前尚未实施的解决方案:
当你做一个REST调用来做一个构建时,它不是非常RESTful.它只是返回HTML,我将不得不进行一种解析来获取作业ID.或者,我可以为列出所有作业的所有历史记录执行REST调用,最新的作业将是我刚刚构建的作业.有了这个,我可以轮询控制台输出以获得构建的输出.
任何人都知道我可以实现"理想"解决方案吗?
我不熟悉Hudson或OSX,我只是想知道这是否可行.我们在OSX上安装了一个Hudson实例.我们希望使用构建过程连接到Windows Server并执行为我们的WP7项目运行MSBuild的批处理文件.我无法访问Hudson机器,到目前为止我的搜索没有得到任何答案,但我的预感是这是不可能的.
最终目标:我们的Hudson机器运行OSX,我们想知道是否可以使用我们的Hudson构建Windows Phone 7项目.我们有一台运行Windows Server 2008的计算机,但它没有Hudson.我们希望有一台Hudson机器尽可能地完成所有构建.
我正在将一些代码输入到Ubuntu框中运行的Hudson Server上,以便在代码上运行一些代码度量(Sonar)和Cobertura.该项目运行Glassfish3.1,使用Maven3,用Java编写,JSF 2.0并使用OracleXE数据库(不相关).
尝试在JUnit测试中创建Facade实例时,会抛出错误.当我从Netbeans运行它们时,测试运行正常,但是当Hudson自动构建它时,我得到了这个错误:
java.lang.ClassCastException: $Proxy96 cannot be cast to ticket.app.DatesFacade
at ticket.app.EventsControllerTest.setUp(EventsControllerTest.java:60)
at junit.framework.TestCase.runBare(TestCase.java:128)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:207)
at org.apache.maven.surefire.junit.JUnit3Provider.executeTestSet(JUnit3Provider.java:107)
at org.apache.maven.surefire.junit.JUnit3Provider.invoke(JUnit3Provider.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
at $Proxy0.invoke(Unknown Source)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:145)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:87)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)
Run Code Online (Sandbox Code Playgroud)
Hudson服务器不是从JBoss运行的,它是由Tomcat运行的.我添加了这个细节,因为当我谷歌这个错误时,除了JBoss错误之外,我什么都没发现,这个错误解释了在WAR和EAR文件中都引用了facade.
编辑:这是我目前正在创建Facade的实例(通过Netbeans GF3.1运行测试时工作正常):
Map properties = new HashMap();
properties.put(EJBContainer.MODULES, new File("target/classes"));
properties.put("org.glassfish.ejb.embedded.glassfish.configuration.file", "server/config/domain.xml");
properties.put("oracle.jdbc.OracleDriver", "server/lib/ojdbc14.jar");
ejbContainer = …
Run Code Online (Sandbox Code Playgroud) 我有一份 Hudson 工作,定期合并来自上游集市存储库的更改。
目前,当上游没有更改时,Hudson 会报告此作业失败,因为 bzr commit 命令返回错误。我的脚本看起来像这样:
bzr branch lp:~lorinh/project/my-local-branch
cd my-local-branch
REV_UPSTREAM=`bzr version-info lp:project --custom --template="{revno}"`
bzr merge lp:project
bzr commit -m "merged upstream version ${REV_UPSTREAM}"
./run_tests.sh
bzr push lp:~lorinh/project/my-local-branch
Run Code Online (Sandbox Code Playgroud)
如果没有要合并的更改,Hudson 控制台输出如下所示:
+ bzr branch lp:~lorinh/project/my-local-branch
Branched 807 revision(s).
+ bzr merge lp:project
Nothing to do.
+ bzr commit -m merged upstream version 733
Committing to: /var/lib/hudson/jobs/merge-upstream/workspace/myproject/
aborting commit write group: PointlessCommit(No changes to commit)
bzr: ERROR: No changes to commit. Use --unchanged to commit anyhow.
Sending e-mails …
Run Code Online (Sandbox Code Playgroud) 我是哈德森的新人.我想在Hudson中执行'sourcecodeanalyzer'命令作为Post-build Actions来生成html报告.请尽可能让我知道,如果是,请告诉我Hudson执行命令的配置步骤.
您在这方面的最早回应将非常有帮助.
提前致谢.
基本上我们有一排排的程序员,他们每天都在完成平凡的任务.这将涉及编写不是非常有效的代码,不进行单元测试,并且经常与应用程序集成得很差.更不用说在工作时间和工作时间方面没有问责制.我不是试图让人们被解雇或让生活变得悲惨.我想要的只是流线敏捷(我们公司禁止使用这个词)流程.这会涉及设置像Hudson集成服务器这样的东西吗?与项目管理软件相关的版本控制?
我们的项目很快就会迁移到这些开源工具.在积极的努力中,我对专家们感到疑惑 - 你发现这些产品的好处,坏处和丑恶之处是什么?什么是不直观的?无需评论所有这些内容,但如果您愿意,请随意!
如果这应该是维基或编辑为更"有问题",请建议或编辑.谢谢你!
我刚认识哈德森ci.并且想知道有没有办法配置它从本地驱动器获取源代码如c:...,d:...
现在,我没有任何源代码存储库.
如果有办法,请告诉我.谢谢
我是Mahesh。我在Linux机器上安装了jenkins,它可以像普通用户一样正常工作,当我尝试以超级用户[root]模式运行一个脚本时,它无法正常工作,即使我禁用了sudoers文件中的密码也无法正常工作,并且还没有给出任何错误它只是以普通用户而不是root的身份运行脚本?我所做的?我该如何解决这个问题?
我只是在詹金斯的shell脚本coloumn中添加这样的...
sudo su // 评论->我禁用了密码,因此不需要密码,我在终端中进行了测试,并且可以使用此密码进入root用户
嘘