将Java代码部署到生产的最佳方法是什么?

时间:2011-01-10 21:25:39

标签: java maven-2

目前我们有一个Java Restlet API,其依赖关系通过Maven控制。当我们更新API时,我们运行maven assembly:assembly,它执行单元测试等并生成一个jar文件。然后我们将其上传到生产服务器并使用nohup运行它。

有更好或更自动化的方法吗?这是Hudson之类的东西吗?

由于

4 个答案:

答案 0 :(得分:1)

有几个Maven插件可以帮助部署。其中最常见的是Cargo,但也有针对某些具体服务器的应用服务器专用插件,如JBoss

答案 1 :(得分:1)

我的经验是webapp-deployment。但这同样适用于此。与产品发布结合使用MavenCargoNexus(或Artifactory),Hudson以及可能Jira

自动发布流程更可靠因为没有人为因素可能会遗忘一个步骤。

我们还使用Liquibase进行数据库版本控制。而且,如果您正在处理应用程序部署中的数据库更改。你会发现Liquibase在运行alter scripts时会增强信心。

我建议您浏览以下资源

答案 2 :(得分:0)

我工作过的大多数公司(实际上,所有公司)都有一些定制的内部构建部署系统;即使构建是使用标准框架(如我当前公司使用的Maven)完成的。 部分原因是因为有许多方面与公司特定的基础设施,容量管理和监控系统密切相关;所以即使有开源系统,通常也需要调整一些东西。

答案 3 :(得分:0)

听起来你自己正在运行你的应用程序 - 它不是任何应用程序服务器的一部分。如果您没有使用应用程序服务器,可能有一些方法可以让货物和maven为您部署它,但您可能最好只使用一些shell脚本来部署和运行应用程序。

但是,随着应用程序的增长,您可能会发现需要Jetty,JBoss,Glassfish,Tomcat等应用程序服务器。当发生这种情况时,请查看Maven的货物插件,因为它允许您执行此操作类似的东西:

mvn cargo:redeploy

这将打包您的应用程序,将其发送到服务器并重新启动应用程序。如果您希望Hudson自动为您执行此操作,您可以将其添加为构建目标。

当您必须经常更新应用程序服务器时,Cargo可以为您节省大量时间。