我在Jenkins中使用Ant Script来处理我的文件的部署。我想做的是触发对具有web服务的URL的调用。我的问题是,我如何从Ant Script或Jenkins内部做到这一点?
提前感谢,蒙特
选项1:"get"任务
Ant的get任务可用于调用web服务,但仅限于get操作。仅适用于非常简单的web服务
选项2:curl
调用unix curl命令来调用webservice(参见本文中的示例)
<target name="invoke-webservice">
<exec executable="curl">
<arg line="-d 'param1=value1¶m2=value2' http://example.com/resource.cgi"/>
</exec>
</target>
注意:
curl命令也可以在Jenkins
中作为构建后操作调用。选项3:Groovy ANT任务
如果你需要一个跨平台和灵活的解决方案,在你的构建中嵌入groovy脚本来调用web服务。
<target name="invoke-webservice">
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>
<groovy>
import static groovyx.net.http.ContentType.JSON
import groovyx.net.http.RESTClient
def client = new RESTClient("http://localhost:5498/")
def response = client.put(path: "parking_tickets",
requestContentType: JSON,
contentType: JSON)
log.info "response status: ${response.status}"
</groovy>
</target>
选项4:Groovy Jenkins post build
使用Groovy Postbuild插件来调用web服务
选项5:ANT HTTP任务
ANT HTTP任务是上面groovy任务的替代方案
与问题相关-如何从Ant调用WebServices。在我的例子中,Anteater有助于正确调用和接收半复杂情况的响应。http://aft.sourceforge.net/index.html
<soapRequest>
是你可能想看一下的任务
看一下Groovy-wslite。项目页面可以在这里找到。工作就像一个魅力,易于整合和直观的使用。我今天遇到了一个类似的问题,并在我的问题/回答中放了一些示例代码:Groovy中的Axis2与complexTypes
您可以:
- 用Java实现一个WebService客户端(例如Netbeans可以在几秒钟内生成它)。
- 将客户端的jar文件上传到subversion,这样可以从Jenkins访问。
- 从ANT执行客户端。