Hudson 无法构建我的 Maven 2 项目,因为它说存储库中缺少工件? (他们不是)
我使用 Hudson 和 Maven 2 进行自动构建/CI。 我可以从命令行使用 Maven 进行良好的构建,但是当我使用 Hudson 运行相同的目标时,构建会失败并抱怨缺少工件。 我将 Hudson 作为 Windows XP 服务运行。
I'm using Hudson and Maven 2 for my automated build/CI. I can build fine with maven from the command line, but when I run the same goal with Hudson, the build fails complaining of missing artifacts. I'm running Hudson as a windows XP service.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
明显的问题,但是您是否已将 Hudson 设置为指向与命令行构建相同的 Maven 存储库? 您可以从 Hudson 管理 gui 进行检查 - 查看“管理 Hudson”页面的 Maven 部分。 这应该列出一个
MAVEN_HOME
环境变量。 查看下面的 settings.xml 文件:localRepository
配置项是 Hudson 构建正在使用的 Maven 存储库的位置。Obvious question, but have you got Hudson set up to point to the same Maven repository as your command line build? You can check this from the Hudson admin gui - look in the Maven section of the Manage Hudson page. This should have a
MAVEN_HOME
environment variable listed. Look in the settings.xml file under:The
localRepository
configuration item is the location of the Maven repository that the Hudson build is using.确保您运行 Hudson 的用户身份与从命令行运行 Maven 的用户身份相同。 Maven 为每个用户创建一个单独的存储库。 如果您将 Hudson 作为 Windows 服务运行,则该用户将与您登录并运行“mvn”命令的用户不同。 这意味着存储库中的工件可能不同。
要修复此问题,请以工作用户身份手动启动 Hudson,或者更新 Hudson 运行用户的存储库。
Make sure you're running Hudson as the same user that you are using to run Maven from the command line. Maven creates a separate repository for each user. If you are running Hudson as a Windows service, this won't be the same user as you have logged on as and will be running "mvn" commands with. This means the artifacts in the repositories may be different.
To fix, either start Hudson manually as the user which works, or update the repository for the user which Hudson is running as.