我正在使用缺少链接的http任务将构建工件推送到我们的工件存储库。 问题是,如果我推送一个新工件,我会得到 HTTP 响应代码 201。 如果我推过现有的工件,我会得到 204。 这两者都在我的上下文中是有效的。 但 <http>
的 expected
属性仅接受单个响应代码。 我尝试了expected="201,204"
和expected="201 204"
但是在执行该 ant 节点时出现NumberFormatException
。 有没有办法同时允许 201 和 204,但将任何其他响应视为失败?
不,不是像你尝试的那样直接。 您必须修改并重建它。 我检查了代码,expected
是一个int
.正如你发现的那样,它不会采取列表。
这将是一个丑陋的解决方法,但您可以设置failonunexpected=false
.
如果通过设置 failonunexpected=false
来继续,无论 HTTP 返回是什么,然后把状态放在一个属性statusProperty="http.status"
中,你可以使用它来使构建失败,如果http.status
不是201 or 204
,你可以使用它来使构建失败。 像这样:
<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还是常春藤布局? 你可以利用常春藤的发布任务。