美文网首页
IntelliJ IDEA导出war包及Tomcat部署

IntelliJ IDEA导出war包及Tomcat部署

作者: 云A00000 | 来源:发表于2018-10-20 14:42 被阅读0次

    1)单击最左下角的选项按钮;

    2)在右侧弹出的maven projects选项展开Lifecycle/package,双击或点击上面的执行按钮,即可;
    3)默认会把打好的war包放在在target目录下。

    【注意】
    默认情况下在IDEA maven项目中src源代码下的xml等资源文件,并不会在编译的时候一块打包进classes文件夹,而是直接舍弃掉。(如把mapper.xml及Analyzer词典等文件放在src/main/java目录下的情况)

    在IDEA有两种方式解决:
    1)建立src/main/resources文件夹,将xml等资源文件放置到这个目录中。maven工具默认在编译的时候,会将resources文件夹中的资源文件一块打包进classes目录中。

    2)配置maven的pom文件配置,在pom文件中找到<build>节点,添加下列代码:

    <build>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                </resource>
            </resources>
        </build>
    
    

    在Tomcat中部署war:
    1、将war文件拷贝到tomcat目录webapps下(不要再建目录)。

    2、将必要的jar文件拷贝到tomcat目录libxia下。 maven打包时已经将需要的jar打到class目录下,不再需要单独导包。

    3、修改tomcat目录conf下的server.xml。
    在<Host></Host>中加入:

    <Context path="/manager" docBase="manager" debug=“0" privileged="true"/>
    
    
    • path=“" 为部署后运行的url路径,可直接设定path为“”,则根目录直接打开;
    • docBase为你的war的文件名。 第一次运行的时候,tomcat会自动解压war,生成path指定名称的网站。这里docBase中的”manager”就表示war文件名称为“manager.war”;// 设置项目的绝对路径如/root/tomcat/tomcat-9/webapps/NongWZPages
    • reloadable:如果设置为"true",则表示当你修改jsp文件后,不需要重启服务器就可以实现页面显示的同步.

    4、完毕,通过bin/startup.sh启动tomcat 即可。

    【注意:在低内存的服务器上,若要更新war包,最好先shutdown tomcat,否则直接替换war会加载大量的class到内存中,以致内存撑爆。】

    【在1G的内存的免费版ES2,发现该问题,每次都需要重启实例,多么痛的领悟】

    前端静态资源缓存的问题

    若在新版本若修改了js,css等静态资源,在发布新版本时,一般通过war包进行替换,但在Chrome等浏览器中还缓存之前的静态资源,如不清除,则还使用之前的资源文件,就会出现资源访问错误。

    一般可通过对js,css等静态资源文件变更文件名来解决。
    如淘宝:cssjs的引入是通过他们的CDN分布式形式,而且后面带有?t=20150105。作用:标注版本号;用随机数防止缓存。

    对于上传的图片等静态资源的保存
    1)千万不要将保存路径放置于运行环境下,应使用一个单独的绝对路径。(在发新的war包会将原运行环境的下目录都替换掉,若图片保存在运行环境下则会被清掉)

    2)使用虚拟目录映射来解决请求的url与静态资源的映射。即将图片文件存放于一个单独的目录内,配置请求的url与该目录的映射关系,使在访问图片资源时自动从该独立的目录下去访问。

    【注意:目录的路径是从根目录下的绝对路径,即保证能在任何目录都能直接使用cd命令打开的路径】

    【若使用ngnix来控制静态资源的访问,则可以跳过!】

    3)在tomcat/conf/server.xml中配置

    <Context path="/" docBase="FBlog" debug="0" privileged="true"/>
           <Context path="/uploads" docBase="///custom_file/uploads" reloadable=“false"/>
    
    

    或者在spring-mvc.xml配置文件中使用

    <!-- 处理独立的资源目录虚拟路径映射 -->
    <mvc:resources mapping="/post/**" location="file:///custom_file/uploads/"/>
    
    

    相关文章

      网友评论

          本文标题:IntelliJ IDEA导出war包及Tomcat部署

          本文链接:https://www.haomeiwen.com/subject/uehmzftx.html