手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

IDEA+Maven+Tomcat 部署到Tomcat

[日期:2017-12-15] 来源:Linux社区  作者:Mercurial [字体: ]

注意,我是本地测试的,没有进行远程服务器测试。

开发工具:Idea 管理工具:apache-maven-3.5.2 服务器:apache-tomcat-7.0.55

1、添加Tomcat账户:

   <role rolename="manager-gui"/>
   <role rolename="manager-script"/>
   <user username="admin" password="password" roles="manager-gui,manager-script" />

2、配置maven和tomcat关联关系,账号密码同上配置,在settings.xml中配置,我是配置在%MAVEN_HOME%\conf\settings.xml下的,自定义的settings.xml路径下配置是否有效可以自己尝试

      <server>
         <id>TomcatServer</id><!--配置你的服务器名-->
         <username>admin</username>
         <password>password</password>
      </server>

3、Maven引入热部署需要的包,pom.xml如下,其中<server>TomcatServer</server>与上面配置的服务器名相同:

<plugins>
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <url>http://127.0.0.1:8080/manager/text</url> 
            <server>TomcatServer</server>
            <update>true</update>
            <!--<path>/MavenBuilder##version</path>-->
            <path>/MavenBuilder</path>
        </configuration>
    </plugin>
</plugins>

4.修改tomcat配置(走投无路了试试,说不定有效),路径%Java_HOME%\conf\Catalina\localhost\manager.xml 

<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" antiResourceLocking="false"
         docBase="${catalina.home}/webapps/manager">
             <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

以上主要配置完成后,很多人会发现报各种奇怪错误:

注意点1:不要太相信自己,仔细检查tomcat登录账号,密码,还有服务id是否是匹配的。

注意点2:<url>http://127.0.0.1:8080/manager/text</url> 不同的tomcat版本配置路径可能不同,可能是<url>http://127.0.0.1:8080/manager/html</url>

注意点3:<update>true</update>这个配置如果没有,你第二次部署会扑街,因为已经部署过一次,同名项目部署第二次导致。

注意点4:包冲突或者版本不对,pom.xml配置如下:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

注意点5:搞清原理,热部署主要的作用是在不关闭服务器的时候添加或修改项目,tomcat必须要开着,并且保证能访问manager手动管理里面的项目。

注意点6:maven指令是tomcat7:deploy 别点错了。

注意点7:pom.xml中的<packaging>war</packaging>不要漏掉了。

注意点8:热部署导致内存溢出的问题配置如下:

pom.xml:

<dependency>
   <groupId>se.jiderhamn.classloader-leak-prevention</groupId>
   <artifactId>classloader-leak-prevention-servlet</artifactId>
   <version>2.1.0</version>
</dependency>

web.xml(放在web.xml的最上方):

<!--处理热部署导致的内存溢出-->
<listener>
  <listener-class>se.jiderhamn.classloader.leak.prevention.ClassLoaderLeakPreventorListener</listener-class>
</listener>

谢谢之前被我参考过的各位博主。。。参考太多记不住了,抱歉

贴一张成功的图,表达一下偶不是骗纸。

Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) on project XXXXXX: Cannot invoke Tomcat manager: Connection reset by peer:

上面的报错信息用来提高搜索到的概率,请无视。

更多Tomcat相关教程见以下内容

CentOS 6.6下安装配置Tomcat环境  http://www.linuxidc.com/Linux/2015-08/122234.htm

RedHat Linux 5.5安装JDK+Tomcat并部署Java项目  http://www.linuxidc.com/Linux/2015-02/113528.htm 

Tomcat权威指南(第二版)(中英高清PDF版+带书签)  http://www.linuxidc.com/Linux/2015-02/113062.htm 

Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm 

Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm 

CentOS 64-bit下安装JDK和Tomcat并设置Tomcat开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm 

Ubuntu 16.04下安装Tomcat 8.5.9  http://www.linuxidc.com/Linux/2017-06/144809.htm

Ubuntu 16.04安装Tomcat 8 图解  http://www.linuxidc.com/Linux/2017-10/147773.htm

Tomcat配置文件server.xml详解  http://www.linuxidc.com/Linux/2017-10/148003.htm

Tomcat单机多实例部署-多项目部署  http://www.linuxidc.com/Linux/2017-10/147259.htm

Tomcat 的详细介绍请点这里
Tomcat 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-12/149453.htm

linux
相关资讯       Maven 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款