java - 为什么 Hudson 忽略我的 profiles.xml 文件?

标签 java maven-2 continuous-integration hudson

我有一个 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/

相关文章:

java - 如何在静态方法中获取Activity()?

visual-studio - 多个构建配置可以共享一个配置转换吗?

continuous-integration - 如何为 GitHub Actions 缓存诗歌安装

git - 如何动态选择要在 Jenkins 构建中使用的 git 分支

java - 如何通过网络浏览器使用分段上传到S3?

java.sql.时间戳 : changing timezone of Timestamp

java - Android,在代码中找到所有请求权限的地方

java - Log4j2 - 配置 RolloverStrategy 以删除旧日志文件

maven-2 - Maven Release Plugin部署sources.jar和javadoc.jar

java - 为 maven-processor-plugin 编写注解处理器