代码之家  ›  专栏  ›  技术社区  ›  Benoit Courtine

为什么哈德逊无视我的建议配置文件.xml文件?

  •  2
  • Benoit Courtine  · 技术社区  · 14 年前

    我有一个Maven2项目pom.xml文件和一个配置文件.xml同一级别的文件。 项目配置由Maven profile properties提供:

    dbhost=${dbhost}
    dbport=${dbport}
    // etc.
    

    在本地,每个开发人员在配置文件.xml". 效果很好。

    对于连续集成,ci“配置文件.xml“已放在我们的SCM服务器上(与pom.xml文件).

    问题是在Maven构建期间Hudson只是忽略了这个文件,而“-P hudsonprofile”的设置是正确的。

    如果相同的配置文件直接在“中移动”pom.xml文件,或在全局设置.xml“建造成功了。所以我们已经有了解决办法。

    我也知道配置文件.xml“文件已弃用,但我想了解为什么哈德逊版本和我的本地版本的组件不同。。。

    注意:Hudson和我的本地版本使用相同版本的Maven(2.2.1)。

    2 回复  |  直到 14 年前
        1
  •  1
  •   Stefan Hendriks    13 年前

    听起来像是一个类路径问题。为什么哈德逊没有注意到profiles.xml?我能想到的唯一原因是Hudson使用的类路径与您预期的不同。

    一个最佳实践(至少在我的经验中)是尝试从CI服务器(Hudson运行的地方)上的命令行构建项目。如果这管用,那么哈德逊也应该管用。除非你在哈德逊古怪地配置了Maven。

    另外,调整设置.xmlMaven的情况也没那么糟。至少,如果你不期望它改变太多。即便如此,它很快就被修复了。

        2
  •  1
  •   Jesse Webb    13 年前

    我认为最好的解决方案是直接在pom.xml文件文件,然后是本地生成的通用文件。然后开发人员可以覆盖他们自己的个人资料中的任何配置文件设置设置.xml本地生成的文件。这样做还有一个额外的好处,就是不必办理登机手续配置文件.xml文件,这将不适用于开发人员,迫使他们修改此版本的文件,并记住不要签入他们的更改。这还有一个额外的好处,使您的构建不依赖于Maven的一个不推荐使用的特性。毕竟,我一开始不会指望一个不推荐使用的特性的行为。希望这是一个优雅的解决方案,其中使用的想法,从你知道已经工作。