Hudson/Jenkins发布插件:发布版本问题

Hudson/Jenkins发布插件:发布版本问题,jenkins,jenkins-plugins,hudson,maven-release-plugin,hudson-plugins,Jenkins,Jenkins Plugins,Hudson,Maven Release Plugin,Hudson Plugins,我正在建立一个新的哈德逊项目,在这个项目上遇到了麻烦。基本上有两种可能性: 不要定义字符串参数releaseVersion和developmentVersion——然后maven发布插件使用默认值。(例如1.0.0-SNAPSHOT(svn)->1.0.0版本将发布(svn中的标签),1.0.1-SNAPSHOT将是下一个开发版本。)在大多数情况下,这对我们来说已经足够了。但是在某些情况下(例如,应该构建一个主要版本),这是不够的 定义这两个值(cp.image,红色标记),但是你总是要填充它们

我正在建立一个新的哈德逊项目,在这个项目上遇到了麻烦。基本上有两种可能性:

  • 不要定义字符串参数
    releaseVersion
    developmentVersion
    ——然后maven发布插件使用默认值。(例如1.0.0-SNAPSHOT(svn)->1.0.0版本将发布(svn中的标签),1.0.1-SNAPSHOT将是下一个开发版本。)在大多数情况下,这对我们来说已经足够了。但是在某些情况下(例如,应该构建一个主要版本),这是不够的
  • 定义这两个值(cp.image,红色标记),但是你总是要填充它们,它们是空的!显然不可能使用默认值或将其留空。这就是为什么可以添加
    预发布
    后发布
    操作,如脚本等。但是,如果插件稍微智能化一点,这在imho中是不必要的

    所以我的问题是:有没有一种方法不使用发布前/发布后构建脚本来获得想要的行为

    需要的行为是:字段
    releaseVersion
    developmentVersion
    应以实际版本/version+1作为前缀。如果这是不可能的,那么将这些字段留空也就足够了(如果这触发了maven构建插件的默认行为),如果这些字段现在为空,maven将被调用一个空参数,从而失败


    (在不同的项目中,我将jenkins与artifactory release插件结合使用,这非常简单-如果发布一个版本,会显示一个页面,其中列出了所有版本。如果主要版本是build,则用户可以轻松更改数字。)

    我也遇到了类似的问题,但我的解决方案可能会在您的情况下产生一些重大开销

    我的设置中的作业不是手动创建的,而是使用生成的。这是因为存在许多针对不同工件的类似作业,并且生成往往会阻止来自不同用户的雪花作业

    我的解决方案如下所示:

  • 对于生成中的每个作业:查询您的工件库,以获取由该作业创建的工件的最新版本(Sonatype Nexus For me)
  • 生成要向用户显示的版本(只需添加次要版本等)
  • 将版本作为默认文本应用于作业DSL中的字符串参数(如图所示)
  • 在设定的时间间隔内重新运行生成,以便作业最有可能显示正确的版本
  • 这对我来说很容易做到,因为作业DSL已经就位,每个工件的名称都是作业名称的一部分。它还远远不够完美,因为可能有一些时间点没有显示正确的版本(就在新版本发布之后,当工作创建尚未重新运行时)

    另一个选择是为这个任务创建一个定制的Jenkins插件,但它可能会带来更多的开销


    PS:如果您想尝试此解决方案,我可以尝试包含更多的代码示例。

    谢谢您的建议,但是我无法安装新插件,您的解决方案类似于在构建过程之前/之后运行脚本。在stack overflow上,我看到了一个groovy脚本,其他一些同事在内部使用了ant。我认为一定有一个没有这些步骤的解决方案…仍然感谢你指出了第三种方法…我不认为还有其他方法,除非你想下去把这个功能引入插件本身。我也很乐意找到更好的解决方案,因为它可以改善我目前的环境。