Jenkins Terminal不支持执行汞清除

时间:2019-06-09 07:51:41

标签: jenkins mercurial jenkins-pipeline purge

我正在使用jenkins,在jenkins管道中执行Hg purge --all -R D:\path时,它将返回hg: unknown command 'purge'.

但是在Windows终端中执行相同命令时,它将正确执行

注意:Jenkins与Mercurial存在于同一台机器中,purge plugin 存在于大仓库和子仓库中

如何解决该问题?

1 个答案:

答案 0 :(得分:2)

关于ir妄的权利:

  • 除了命令提示符之外,您的主机和Jenkins configured上可能有多个Mercurial使用另一个实例(不带扩展名)
  • 您在不同的用户和使用的不同mercurial.ini下运行Jenkins,没有扩展名(无法读取每个存储库配置)

您可以(选择任何方法):

  • 在系统范围内启用扩展名(并在存储库中将其禁用,如果您不想要它)
  • 用“旧式” mercurial alias替换扩展名
  • forcibly enable extension用于单个命令public class RecordKeysResolver implements TypeKeysResolver { @Override public String getCategoryName() { return "Records"; } @Override public Set<MetadataKey> getKeys(MetadataContext context) throws MetadataResolvingException, ConnectionException { System.out.println("Hello"); List<String> keyIds = Arrays.asList("Author_id", "BookList_id", "Book_id"); HashSet<MetadataKey> keys = new HashSet<>(); for (String id : keyIds) { MetadataKeyBuilder builder = MetadataKeyBuilder.newKey(id); builder.withDisplayName(StringUtils.removeEnd(id, "_id")); keys.add(builder.build()); } return keys; } }

从我的观点来看,mercurial.ini中的系统范围扩展将是最简单且合乎逻辑的解决方案