Tomcat部署非常简单,直接把程序复制到{Tomcat安装目录}/webapps
目录下即可。该目录下会有很多默认的文件夹,如docs
examples
host-manager
manager
ROOT
,这些都是Tomcat的文档、演示以及管理平台,实际使用中都不需要,如果配置不当甚至还会有安全隐患。所以在部署前,要先删除这些文件夹。
webapps
下有一个特殊的文件夹ROOT
,放在该目录下会作为Tomcat访问的根目录,比如/webapps/ROOT/index.html
的访问地址为http://localhost:8080/index.html
。而/webapps/abc/index.html
的访问地址则为http://localhost:8080/abc/index.html
。因此大部分情况下,都是部署在ROOT
目录。
通过修改tomcat的server.xml文件可以改变tomcat的部署位置,但如果不是非常精通Tomcat,我们不建议你这么做。特别是在部署碰到错误时,更应该放弃这种做法。我们碰到过很多因为修改tomcat配置导致错误的案例。
/src/main/java/
源码目录。编译后会保存在/target/classes/
目录。该目录不用直接参与部署。/src/main/resources/
资源目录。编译后会也会保存在/target/classes/
目录。该目录不用直接参与部署。/src/main/wabapp/
web程序的页面、图片、css、js等文件。该目录的文件可以需要部署在{tomcat}/webapps/ROOT/
目录下。如/src/main/webapp/index.html
则部署到{tomcat}/webapps/ROOT/index.html
。/target/classes/
编译后会自动生成该目录,包含/src/main/java/
和/src/main/resources/
中的内容。该目录下的文件需要部署在{tomcat}/webapps/ROOT/WEB-INF/classes/
目录下。综上所述,只要将/src/main/wabapp/
和/target/classes/
复制到tomcat相应目录即可,但还缺少依赖包,即{tomcat}/webapps/ROOT/WEB-INF/lib/
目录下的jar包。
使用mvn package
或者mav install
可以得到完整的war包。直接在命令行使用maven命令,或者使用eclipse、idea等开发工具中相应的功能,都可以实现打包。
打包后在/target
目录下会出现类似jspxcms-9.0.0.war
的文件。war文件和zip文件格式是一样的,可以使用解压软件打开。解压后得到的文件就是上述的/src/main/wabapp/
、/target/classes/
和依赖包/WEB-INF/lib/
组成的。
war文件可以直接部署到{Tomcat安装目录}/webapps/
运行tomcat后会自动解压,解压的目录和war文件名是一样的,比如{Tomcat安装目录}/webapps/jspxcms-9.0.0.war
会解压成{Tomcat安装目录}/webapps/jspxcms-9.0.0
。通过上面的知识可以知道,要访问到这个程序,访问地址应该是http://localhost:8080/jspxcms-9.0.0/
,而这个访问地址http://localhost:8080/
是无法访问的。这显然不是我们想要的。这时需要将jspxcms-9.0.0.war
重命名为ROOT.war
,解压后成{Tomcat安装目录}/webapps/ROOT/
,这样就可以通过http://localhost:8080/
访问了。
有一点需要注意,如果一个目录已经存在{Tomcat安装目录}/webapps/ROOT/
,只替换ROOT.war
包,这样不会重新解压。需要将ROOT
目录删除再替换ROOT.war
文件才会重新解压。