maven tomcat 插件将项目部署至tomcat根目录

原创
2017/03/24 15:40
阅读数 350

1. pom.xml 添加 tomcat插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <path>/</path>
                <url>http://127.0.0.1:8080/manager/text</url>
                <update>true</update>
                <server>tomcat</server>
                <username>tomcat</username>
                <password>tomcat</password>
            </configuration>
        </plugin>
    </plugins>
</build>
  • 这里的url为tomcat manager的url,后面一定是/manager/text,这个是manager上传war包的路径;
  • 这里的path为“/”,指tomcat根目录,即,访问链接为:127.0.0.1:8080;
  • update节点为true,这样每次deploy的时候,就会更新之前的war包,不然会报错;

2. server节点在maven conf/setting.xml里设置,这是maven的配置: 

  <servers>
    <server>
      <id>other</id>
      <username>admin</username>
      <password>admin</password>
    </server>
    <server>
      <id>tomcat</id>
      <username>tomcat</username>
      <password>tomcat</password>
    </server>
<servers>
  • 这里的server可以配置多个,只要ID不一样就可以;

3. tomcat配置里,添加tomcat user:

 <tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="admin-script"/>
  <role rolename="manager-script"/>
  <role rolename="manager-gui"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="admin" password="admin" roles="admin,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>
  <user username="tomcat" password="tomcat" roles="manager-script" />
</tomcat-users>
  • 这里是比较坑的地方,tomcat的manager-admin角色和manager-gui角色不能同时给一个账号使用;需要分开;
  • 所以上面pom.xml和maven的server里面使用的都是tomcat这个账号,这个是专门用manager-script这个角色的;

4. tomcat的server.xml不需要做任何处理,不需要加context path="/"节点,加了就不对了:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
   <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
      prefix="localhost_access_log" suffix=".txt"
      pattern="%h %l %u %t &quot;%r&quot; %s %b" />        
</Host>
  • 这里不需要添加context节点;
  • autoDeploy要设置为true,unpackWARs也为true;

5. 启动8080端口的tomcat,然后IDE里,点击“tomcat7”》“tomcat7:deploy”,会将war包上传到tomcat的webapps根目录:
部署之前:
    
 这里保留tomcat的manager项目
 点击“deploy”:
    
部署日志:    

[INFO] <<< tomcat7-maven-plugin:2.2:deploy (default-cli) < package @ project <<<
[INFO] 
[INFO] --- tomcat7-maven-plugin:2.2:deploy (default-cli) @ project ---
[INFO] Deploying war to http://127.0.0.1:8080/  
Uploading: http://127.0.0.1:8080/manager/text/deploy?path=%2F&update=true
Uploaded: http://127.0.0.1:8080/manager/text/deploy?path=%2F&update=true (21698 KB at 61291.7 KB/sec)
[INFO] tomcatManager status code:200, ReasonPhrase:OK
[INFO] OK - Deployed application at context path /
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.025 s
[INFO] Finished at: 2017-03-24T15:30:10+08:00
[INFO] Final Memory: 29M/448M
[INFO] ------------------------------------------------------------------------
Process finished with exit code 0

部署之后:
    
     maven tomcat插件会将war自动重命名为ROOT.war,之后上传到webapps的目录,然后tomcat会自动将war包解压,实现自动部署。
6. 访问:http://127.0.0.1:8080/  

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部