【问题标题】:Jenkins multi-configuration project user-defined axis environment variableJenkins多配置项目用户自定义轴环境变量
【发布时间】:2012-01-08 20:15:31
【问题描述】:

我正在尝试在 Jenkins 中使用单个用户定义的轴(称为“轴”)设置多配置项目。然后,与每个配置关联的值将用于调用 ${axis}/pom.xml 中的顶级 maven 目标。问题是,我找不到合适的语法,如果它确实存在的话(${axis}$axis$AXIS${env.axis} 都失败了)。我认为这将是 shell 语法,它似乎不是,但不管它应该是简单的还是不可能的。有可能吗?

【问题讨论】:

  • 感谢您的回答——我无法足够快地解决这个问题,所以我使用了一个完全不同的构建框架。

标签: maven continuous-integration hudson environment-variables jenkins


【解决方案1】:

您的 Jenkins 安装是否在 Windows 上运行?

对于每个自定义轴,都会创建一个环境变量。如果您的服务器运行 Linux,您可以使用 ${axis} 引用您的自定义轴,但在 Windows 上,您必须将其引用为 %axis%

【讨论】:

  • %axis% 语法在 windows 批处理命令中确实有效,但在运行 Maven 构建时无法解决。轴值作为系统属性传递给 mvn 命令(使用 -D 标志)
  • 哇!只是喜欢它!在花了很多时间弄清楚之后......这让我很开心
【解决方案2】:

${axis}/pom.xml 根据我的经验应该可以工作。

【讨论】:

    【解决方案3】:

    我很欣赏 OP 以不同的方式解决了这个问题,但为了记录,以下在 Windows 和 Linux 中的 Hudson 中工作。我没有在 Jenkins 中尝试过:

    你需要的语法就是$axis/pom.xml

    我定义了BuildProfile=compile unitTest integrationTest的轴

    在 Maven 3 配置中(在高级属性下)$BuildProfile/pom.xml 的 POM 文件

    生成的构建在控制台中提供了以下输出(为简洁起见进行了编辑):

    [1.7.0_25] $ C:\Users...\bin\mvn.bat clean install -V -B -DBuildProfile=compile -f compile/pom.xml

    [1.7.0_25] $ C:\Users...\bin\mvn.bat clean install -V -B -DBuildProfile=unitTest -f unitTest/pom.xml

    [1.7.0_25] $ C:\Users...\bin\mvn.bat clean install -V -B -DBuildProfile=integrationTests -f integrationTests/pom.xml

    【讨论】:

      【解决方案4】:

      我们使用 jdk 轴并且只使用 jdk 的名称,所以我认为您可以使用 axis/pom.xml

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-06
        • 2019-02-22
        • 1970-01-01
        • 1970-01-01
        • 2014-01-24
        • 1970-01-01
        • 1970-01-01
        • 2011-06-15
        相关资源
        最近更新 更多