Hudson 无法构建我的 Maven 2 项目,因为它说存储库中缺少工件? (他们不是)

Posted

技术标签:

【中文标题】Hudson 无法构建我的 Maven 2 项目,因为它说存储库中缺少工件? (他们不是)【英文标题】:Hudson can't build my Maven 2 project because it says artifacts are missing from the repository? (they aren't) 【发布时间】:2010-09-07 19:59:02 【问题描述】:

我正在使用 Hudson 和 Maven 2 进行自动化构建/CI。我可以从命令行使用 maven 构建良好,但是当我使用 Hudson 运行相同的目标时,构建失败并抱怨缺少工件。我将 Hudson 作为 Windows XP 服务运行。

【问题讨论】:

同样的问题,我在 Tomcat 中运行 Hudson 【参考方案1】:

很明显的问题,但是您是否已将 Hudson 设置为指向与您的命令行构建相同的 Maven 存储库?您可以从 Hudson 管理 gui 中检查这一点 - 查看 Manage Hudson 页面的 Maven 部分。这应该列出一个MAVEN_HOME 环境变量。查看下的settings.xml文件:

MAVEN_HOME\conf\settings.xml

localRepository 配置项是 Hudson 构建使用的 Maven 存储库的位置。

【讨论】:

即使我们在 MAVEN_HOME\conf\settings.xml 中设置了 Maven 存储库,Hudson 仍然会转到默认目录 C:\Documents and Settings\user。【参考方案2】:

确保您以与从命令行运行 Maven 的用户相同的用户身份运行 Hudson。 Maven 为每个用户创建一个单独的存储库。如果您将 Hudson 作为 Windows 服务运行,这将与您登录时使用的用户不同,并将运行“mvn”命令。这意味着存储库中的工件可能不同。

要解决此问题,请以正常工作的用户身份手动启动 Hudson,或者为运行 Hudson 的用户更新存储库。

【讨论】:

以上是关于Hudson 无法构建我的 Maven 2 项目,因为它说存储库中缺少工件? (他们不是)的主要内容,如果未能解决你的问题,请参考以下文章

设置 Maven 仓库目录

使用 Maven、SVN 和 Hudson(jenkins) 发布

求助:hudson调用maven构建报错java.lang.NoClassDefFoundError

如何使用 Hudson 构建 Play 项目?

如何在 Hudson 中删除不需要的构建工件

从 Hudson 传递 Maven 调试标志