2009-04-16 79 views
2

我运行JUnit每晚构建我的计算机上为Windows XP计划任务。我的应用程序使用Jaxb,因此某些测试需要使用系统类路径引用xsd模式。当每晚构建运行,而我不在电脑上,我得到一个错误这样的:运行每晚构建为XP计划任务 - Classpath的问题

java.lang.Exception的:无法从classpath中

加载的架构mySchema.xsd然而,当我手动运行构建时,我得不到这样的错误。我的模式的位置的环境变量是一个系统变量,而不是一个用户变量,所以我不知道是什么可能导致此错误。什么可能是这个错误的原因?

编辑:像哈德森这样的替代品不是我所要求的。我正在寻求上述技术的解决方案(批处理文件作为计划任务运行)。

回答

1

我怀疑是你的工作目录是对你的期望(而不是CLASSPATH变量专)的不同。如果您以用户身份运行此计划任务或作为系统任务运行,这并不明显。无论在哪种情况下,都很有必要确定任务的运行位置。

也就是说,虽然我以前使用Windows XP计划任务设置自动构建(与您现在所做的完全相同),但我们当前使用的是CruiseControl。在摘要中,这与你正在做的(定期运行构建)并没有太大的不同,但它是increases your flexibility。在此处,CruiseControl最有价值的功能是检测到已发生更改并仅运行构建,然后。我们会在现在提交的10分钟内找出关于构建破损,单元测试失败等的信息。

1

你应该看看HudsonCruise Control。两者都易于设置,并将为您提供更多的报告,控制和改进的可用性,为您解决这类问题。您将花更少的时间来调查构建问题。

+0

haskell?真?你的意思是“哈德森”? – dfa 2009-04-16 16:12:05

1

hudson是另一个持续集成引擎,这是非常设置非常简单:

Hudson offers the following features

  • 安装方便:只要Java的罐子 的hudson.war,或在一个servlet 部署容器。没有额外的安装,没有 数据库。
  • 简单的配置:哈德森可以是 完全从其友好的 网页图形用户界面进行配置,具有广泛的即时动作 错误检查和内联帮助。有 无需手动调整XML 了,但如果你想要做的 这样,你可以做到这一点。
  • 更改设置支持:哈德森可以 生成从CVS /颠覆/水银做成 构建更改的列表。这 是一个相当有效的 时尚也做,以减少 库的负荷。
  • 永久链接:哈德森为您提供了大部分 网页 干净可读的网址,包括一些固定链接链接 “最新版本” /“最近一次成功 建”,使他们可以很容易地 从其他地方相连。
  • RSS /电子邮件/ IM集成:监视器 通过RSS或电子邮件获得 实时失败通知。
  • 后既成事实标签:建立可 标记后不久版本是 完成的JUnit/TestNG的测试 报告:JUnit测试报告可以 表格,汇总,并与历史信息显示 ,如 当开始打破等。 历史趋势绘制成 图表。
  • 分布式构建:哈德森可以 分布构建/测试负载到 多台计算机。这可以让您获得 最大的空闲 工作站坐落在 开发人员的桌子下面。文件 指纹识别:Hudson可以跟踪 哪个版本生成哪个罐子, 哪个版本使用哪个版本的罐子等等。这个 甚至适用于Hudson以外生产的 的罐子,并且对于追踪依赖性的 项目是理想的。
  • 插件支持:哈德森可以通过第三方插件扩展 。您可以编写插件,使您的 团队使用的支持工具/流程Hudson 。