我有一个 Maven2 项目,在同一级别有一个 pom.xml 和一个 profiles.xml 文件。 项目配置由 Maven 配置文件属性提供:
dbhost=${dbhost}
dbport=${dbport}
// etc.
在本地,每个开发人员在“profiles.xml”中定制他的构建。它运行良好。
为了持续集成,我们的 SCM 服务器上已经放置了一个 ci“profiles.xml”(与 pom.xml 处于同一级别)。
问题是 Hudson 在 Maven 构建期间忽略了这个文件,而“-P hudsonprofile”设置正确。
如果直接在“pom.xml”或全局“settings.xml”中移动相同的配置文件,构建工作。所以我们已经有了解决方案。
我也知道“profiles.xml”文件已被弃用,但我想了解为什么 Hudson 构建和我的本地构建之间的行为不同......
注意:Hudson 和我的本地构建使用相同版本的 Maven (2.2.1)。
最佳答案
对我来说这听起来像是一个类路径问题。为什么 Hudson 不会注意到 profiles.xml?我能想到的唯一原因是 Hudson 使用了与您预期不同的类路径。
最佳实践(至少根据我的经验)是尝试从 CI 服务器(运行 Hudson 的服务器)上的命令行构建项目。如果那行得通,那么 hudson 也应该行得通。除非你在 Hudson 中奇怪地配置了 Maven。
另外,调整Maven的settings.xml也不错。至少,如果你不希望它改变太多。尽管如此,它还是很快得到修复。
关于java - 为什么 Hudson 忽略我的 profiles.xml 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3767364/