如何处理多个ant丢失链接的成功状态代码?
我正在使用http任务将构建工件推送到工件库。问题是,如果我推送一个新工件,我会得到一个201的HTTP响应代码。如果我推过一个现有的工件,我会得到一个204。在我的上下文中,这两个都是有效的。但是如何处理多个ant丢失链接的成功状态代码?,ant,Ant,我正在使用http任务将构建工件推送到工件库。问题是,如果我推送一个新工件,我会得到一个201的HTTP响应代码。如果我推过一个现有的工件,我会得到一个204。在我的上下文中,这两个都是有效的。但是的预期的属性只接受一个响应代码。我尝试了expected=“201204”和expected=“201 204”但是在执行ant节点时,我得到了一个NumberFormatException。有没有一种方法可以同时允许201和204,但将任何其他响应视为失败?没有,不像您尝试的那样直接。你必须修改和重
的预期的属性只接受一个响应代码。我尝试了expected=“201204”
和expected=“201 204”
但是在执行ant节点时,我得到了一个NumberFormatException
。有没有一种方法可以同时允许201和204,但将任何其他响应视为失败?没有,不像您尝试的那样直接。你必须修改和重建它。我检查了代码,expected
是一个int
。正如你所发现的,它不需要列表
这将是一个难看的解决方法,但您可以设置failonnexpected=false
通过设置failonnexpected=false
,然后将状态放入属性statusProperty=“http.status”
,如果http.status
不是201或204
,则可以使用该属性使构建失败,这样无论http返回的是什么,都可以使构建不那么难看。比如:
<condition property="http.status.ok">
<matches pattern="20[14]" string="${http.status}"/>
</condition>
<fail message="Bad http status ${http.status}" unless="http.status.ok"/>
告诉我更多关于您的工件库的信息。是maven还是ivy布局?您可以利用此任务。谢谢您的回答。我对回购不太了解,因为它是由团队中的另一位开发人员创建的,我认为它是定制的,不是开源的。我想我只需要执行curl和punt就可以了。这将给我带来良好的兼容性和错误检测。我认为使用http taks可能比使用execing to curl更幸运。我承认我昨天从内存中输入了上面的代码片段,但我刚刚测试了它,它运行正常。您将获得更好的日志记录,并向用户发送更好的失败消息。