2016-05-17 108 views
1

我正在使用Maven编写Java应用程序。我必须在远程强大的服务器上部署应用程序才能运行实验。我想到的最简单的方法是使用Maven着色插件构建一个jar-with-dependencies,然后将uber-jar复制到远程服务器。但是jar很大,超过100 MB,并且需要一些时间才能通过我们的网络发送。这是多余的,因为大部分jar包含重度依赖(Scala,Spark,Jetty),当我们更改代码时,只有一小部分会发生变化。使用Maven在远程服务器上部署Java应用程序

我可以使用Maven在远程服务器上安装依赖项,然后只发送更小的jar而不依赖于服务器?

我有SSH连接到服务器,我可以使用SCP插件。

+1

如果一台服务器功能强大,为什么不建立它呢? –

+0

你可以创建一个“其他任何东西”的超级节点,发送一次,然后在远程服务器上运行它时将你的“可改变”的东西添加到类路径中......看到这个:http://stackoverflow.com/questions/219585 /设置多个jar-in-java-classpath – Mainguy

+0

@YegorChumakov然后我需要将代码发送到服务器,这是一个冗余步骤,我不使用它作为开发机器,而且我也不每次我更改代码时都想推动git –

回答

0

你在你的问题中提到Jetty,所以我假设你的应用服务器是Jetty。我会尝试将公共库jar上传到服务器,然后将它们包含在jetty类路径中。这将是一次性任务。也许这将有助于:How do I place jars in jetty/lib on the jetty classpath?

之后,您可以使用maven构建一个您可以上传和部署的“瘦”战争/ jar。

+0

Jetty作为示例被提及。我也有一个案例,我不使用码头 –

+0

该解决方案仍适用于任何应用程序服务器。将您的第三方jar上传到您的服务器的lib目录。并使用maven构建一个“瘦”的战争/罐子,你可以上传和部署。 – chrisl08

相关问题