我们是否可以仅通过SSH将更改的类重新部署到JAR

时间:2013-04-02 04:26:10

标签: java jar

我有一个Android客户端/服务器程序,我正在使用IntelliJ作为我的IDE。

服务器,甚至用于测试,都在EC2主机上运行,​​因为我在各种各样的地方使用我的笔记本电脑,并且不想在任何地方设置端口转发!

我只是想知道是否有一种方便的方法来重新部署我的服务器代码而无需重新发送所有库以使其更快一些。

我将服务器作为.jar运行,即java -jar Server.jar

有可能,我不知道,在一个jar中有所有库,只发送已编译的代码吗?

又名。

目前我只有一个罐子:

的server.jar

但我可以把它换成两个罐子吗?

libraries.jar 的server.jar

我只是重新上传并运行

的server.jar

可以吗?

*更新*

刚刚意识到我可以通过使用

轻松实现这一目标

java -cp ./libraries.jar -jar server.jar

但我会留下这个问题以防其他人有同样的心理打嗝

*更新2 *

好的,以上都不行!关于-jar命令忽略外部库的奇怪之处:S(所以为什么要允许-cp标志??? !! Java就像民主一样 - 最糟糕的语言,除了所有其他语言!)

但是,这样做:

java -cp server.jar:libraries.jar server.Server

其中server.Server是主类

请参阅Accessing classes in an external Jar

1 个答案:

答案 0 :(得分:0)

非常可能,这就像一个补丁。

你不需要在一个罐子里重新组合库(如果它们都是第三方)。

由于您的部署结构已经设置完毕。所以你只需要更换你正在改变的部分。

假设您在server.jar的类xyz中进行了一些更改,然后只需将server.jar替换为新的,然后重新启动服务器。这些变化将反映出来。