使用Maven将Web应用中的差异仅部署到远程服务器

时间:2011-06-05 01:07:32

标签: tomcat deployment maven

我正在使用货物:使用maven部署将应用程序部署到服务器。这很好用,但我最近尝试使用CloudBees。他们的基础设施有类似的插件。但是,它仅部署旧WAR和新WAR之间的差异,因此速度明显更快。货物:部署需要4到6分钟,CloudBees方法需要不到一分钟。

是否有任何Maven插件可以让我只将我的更改部署到我自己的应用服务器?现在我正在使用Tomcat,但如果有一个很好的解决方案可以考虑切换应用程序服务器。

3 个答案:

答案 0 :(得分:2)

您需要服务器端支持接收delta,这是我们(cloudbees)调用我们秘密酱的地方。

您需要的是目标服务器上的部署服务,该服务了解上传的任何增量格式。

在某些方面做起来并不棘手......战争内置了校验和,所以如果战争中的一个条目具有相同的路径,最后修改过的,Crc和大小那么它就是排除的好选择从三角洲,所以你采取更安全的哈希或两个(sha-256和md5,例如,给予不同的功能进行比较),如果这些哈希是相同的!从三角洲中排除。

一个花哨的tomcat-deployer网络应用程序可以支持这样的部署,但是你想要将其锁定以进行生产,但无论如何为什么要在GSETDIFY

时主持自己

答案 1 :(得分:0)

如果您只对Tomcat感兴趣,可以使用Tomcat Plugin for Maven

配置并不困难,只需检查Tomcat管理器应用程序URL,因为它已从Tomcat 6(http:// tomcat_server:8080 / manager /)更改为Tomcat 7(http:// tomcat_server:8080 / manager / html) )。

该插件在“package”构建阶段之后运行,因此它会将生成的war直接部署到Tomcat运行的远程服务器上。

答案 2 :(得分:0)

我发现在几次货物部署后,我在服务器中出现了内存错误。 你可以使用maven wagon ssh扩展。它可以根据扩大的战争上传。 这是使用文档:

http://mojo.codehaus.org/wagon-maven-plugin/usage.html

但不确定如何让它只上传更改的文件。使用ant,有一个文件缓存组件可以缓存文件的校验和,只有在校验和发生变化时才重新上载。

即使您上传了文件,也可能需要重新启动,因为tomcat在热部署方面不是很好。