V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LinkedIn
iMouseWu
V2EX  ›  程序员

问下,在linux下部署java web程序,应该怎么去维护这个程序?

  •  
  •   iMouseWu · 2013-10-27 19:22:21 +08:00 · 3463 次点击
    这是一个创建于 3255 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在linux下部署java web程序,程序是在win下开发,打成war包,传到linux服务器的Tomcat下,那么如果我在win下面修改了java源代码的一些程序后,接下来该怎么办?重新编译,重新上传一次到Linux还是只需要把重新编译的源代码上传替换掉原来的就行了?
    有没有在linux部署java的简单点的工具?最好是源代码也在服务器上,这样就可以很好的部署了。
    8 条回复    1970-01-01 08:00:00 +08:00
    smilezino
        1
    smilezino  
       2013-10-27 19:34:10 +08:00   ❤️ 1
    linux上安装git或是svn,提交代码,自动编译。推荐用git哈
    http://xydudu.calepin.co/git-server-and-hook.html
    http://icyleaf.com/2012/03/apps-auto-deploy-with-git
    rails3
        2
    rails3  
       2013-10-27 22:31:15 +08:00 via iPhone   ❤️ 1
    git+ant
    anheiyouxia
        3
    anheiyouxia  
       2013-10-27 22:46:23 +08:00
    以前我在一家做页游的公司做开发的时候,当过一段时间的兼职运维
    web server用的是tomcat,当时的做法是停掉tomcat,然后更新文件
    试过直接替换已编译过的jsp以及class文件,大多数情况下是可以正常执行新的逻辑的
    但是如果添加或者修改了方法名之类的,就会报method not found的异常
    所以,在那家公司,为了避免一些未知的问题,我们采用的方法都是停止应用,更新后再启动
    iMouseWu
        4
    iMouseWu  
    OP
       2013-10-27 23:40:43 +08:00
    @anheiyouxia 我目前就是采用就是直接替换class文件的
    yunlzheng
        5
    yunlzheng  
       2013-10-28 08:57:29 +08:00   ❤️ 1
    建议使用maven+ git+jenkins
    jokerlee
        6
    jokerlee  
       2013-10-28 21:32:13 +08:00   ❤️ 1
    用ant写一个scp target,热替换class文件,
    web容器热替换有个nb工具叫jrebel
    jokerlee
        7
    jokerlee  
       2013-10-28 21:33:52 +08:00
    直接git提交是不大好的,毕竟没有测试过(当然如果有本机test case会好一些),很有可能把一堆有缺陷的代码提交打版本库
    iMouseWu
        8
    iMouseWu  
    OP
       2013-10-28 22:59:45 +08:00
    @jokerlee 你的意思是,把本地调试好的代码直接放服务器不妥?应该放到测试服务器服务器测试再放服务器吗?
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   992 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 21:29 · PVG 05:29 · LAX 14:29 · JFK 17:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.