2011-10-01 65 views
2

我会在本地运行maven,它太棒了!我现在唯一的问题是我有一个沉重的堆栈,我有这些大量的WAR文件。关于使用Maven作为一个工具来同步你的本地依赖和运行在服务器上的应用程序,有没有一种好的方法或最佳做法?如何在Maven中将服务器目标设置为服务器/同步?

例如,我可以以某种方式创建一个上传POM的目标,并告诉Maven在服务器端重建?我们在两边运行linux。本地Jetty和远程Tomcat。

我敢肯定想到了这一点Apache的家伙...你的想法是非常赞赏...

+0

我们使用SVN太...但切换到水银 – Spider

+0

你为什么要重建在服务器端的东西(如Maven和SVN集成)在想什么?你的战争已经建成。只需将它部署在服务器上即可。不需要重建。 –

+0

我的WAR是100MB,我们的服务器位于世界的另一边。上传需要一段时间,如果您正在进行服务器端调试或维护,这是一个痛苦。 – Spider

回答

0

我认为正确的方法是安装所产生的战争(如果每台服务器配置neccessary一个)进入一个存储库(不是SVN,像Nexus这样的Maven存储库)。通过这种方式,您可以设置简单的脚本或maven配置来在测试或生产服务器上部署工件,而无需在服务器上重新构建它们。

结帐install plugin

2

您可以查看的一个工具是cargo,它可以将生成的工件生成并安装到远程服务器实例。货物可以集成到你的maven版本中。但是,如果您有多个开发人员并且只是希望将最新版本的存储库部署到服务器上,我鼓励您至少调查持续集成服务器,并设置手动或夜间工作为你做部署。持续集成服务器,如Jenkins,可以:

  1. 检查SVN的改动任何代码(如果要启用SVN轮询)
  2. 执行检出(或恢复+更新)接收来自最新的代码SVN。
  3. 构建使用Maven构建WAR文件。
  4. 使用Jenkins Deploy插件或后期构建步骤来部署最终的WAR。让Cargo在构建过程中通过maven部署也是一种选择。

只是有些想法。我还强烈推荐Nexus作为工件存储库。由于Jenkins能够将构建版本作为Maven构建版运行,因此您可以配置Jenkins以运行部署目标并将maven配置为您部署的构件服务器的位置(Nexus位置),以便将构建推送到该构建版。