Reduce war size for frequent redeployments(uploads

2019-07-22 14:12发布

While development I need to frequently update my web app source code & deploy the updated war to a remote Tomcat server. Uploading a big war(25MB) takes too long(around 30 min) on my connection which is very unproductive. Is there any way I could reduce the war size ? There are a lot of external dependencies in my project. Could I deploy just the changes(may be dependencies remain intact) ?

4条回答
The star\"
2楼-- · 2019-07-22 14:26

You can use git hooks (http://www.git-scm.com/book/en/v2/Customizing-Git-Git-Hooks). Altough, this requires a git repository on your webserver. Deployments may triggered by push events.

查看更多
做自己的国王
3楼-- · 2019-07-22 14:27

Actually, if exploded war deployment is an option for you then you could use kwatee. It's a free and unrestricted tool (I'm the author) with a simple web interface (or CLI automation) that can do incremental exploded war updates and many other things.

查看更多
地球回转人心会变
4楼-- · 2019-07-22 14:28

It depends how much control you have over the upload process. If you have remote access to the filesystem, the following should work:

  • Upload the WAR
  • Let Tomcat expand it
  • Stop Tomcat
  • Delete the WAR
  • Start Tomcat
  • Tomcat should run your app from the expanded directory
  • Upload changed files only and replace the old ones in the expanded directory
  • For static files, no further action is necessary
  • If up update classes or JARs, you'll need to restart Tomcat
查看更多
倾城 Initia
5楼-- · 2019-07-22 14:38

What you are asking (Could I deploy just the changes?) cannot be done. There are other things you can do though to reduce the file size of your war file:

  1. You can place libraries in tomcat's common directory (tomcat-dir/common/lib) and remove them from your dependencies in your war file (Does Tomcat load the same library file into memory twice if they are in two web apps?).
  2. Place static file on a cdn or another web application on your tomcat (that would require code modification though)
查看更多
登录 后发表回答