Java 使用Spring和Maven时,将代码部署到服务器的最佳方式是什么?

Java 使用Spring和Maven时,将代码部署到服务器的最佳方式是什么?,java,spring,deployment,maven,Java,Spring,Deployment,Maven,我有一个使用Spring的项目。每次部署时,我都运行maven目标“包”,它运行所有测试并创建war文件。然后我手动使用ftp程序将war文件复制到服务器。然后我运行一个bash脚本关闭服务器,替换war并再次启动服务器 有时,当对数据库模式进行更改时,我必须手动运行sql迁移脚本 有更好的工作流程可以使用吗?由于项目的war文件达到60MB,我必须等待10-12分钟才能将其上传到服务器。如果我意识到有一件小事需要改变,我就必须重新开始整个过程 这对我来说更糟糕,因为在DSL上,上传带宽消耗了下

我有一个使用Spring的项目。每次部署时,我都运行maven目标“包”,它运行所有测试并创建war文件。然后我手动使用ftp程序将war文件复制到服务器。然后我运行一个bash脚本关闭服务器,替换war并再次启动服务器

有时,当对数据库模式进行更改时,我必须手动运行sql迁移脚本

有更好的工作流程可以使用吗?由于项目的war文件达到60MB,我必须等待10-12分钟才能将其上传到服务器。如果我意识到有一件小事需要改变,我就必须重新开始整个过程

这对我来说更糟糕,因为在DSL上,上传带宽消耗了下载带宽,所以互联网完全无法运行。即使是在项目上工作和运行maven goals也很慢,因为他们总是使用internet连接来查找依赖项


有更好的工作方式吗?谢谢。

首先,使用Maven Deploy插件可以避免手动ftp复制。 您可以在以下URL找到通过ftp部署项目的方法:

第二点是关于您的项目的问题:您的战争规模正常吗?
我听说过一些配置嵌入了多余的jar,以避免在构建最终jar时META-INF/spring.handlers重写的问题。如果您处于这种情况,您可能也会对此感兴趣:


嗯,我不介意将它上传到服务器上。我认为这个手动步骤不是真正的问题。我想做的是,如果可以的话,我根本不需要上传60MB,特别是如果我只做了2KB的更改。有没有办法同步源代码和服务器,并通过maven在服务器上进行构建?如果没有ssh访问权,我认为您无法在服务器上进行构建。我对Spring一点也不了解,但如果您使用Tomcat(),似乎可以更新webapp部件。如果是这样,那么可以使用maven deploy部署这些分离的文件。