网上看很很多篇文章,都没有实现,还是费了很大的劲了,有必要总结一下
1.给tomcat添加manager权限,在conf下的tomcat-users.xml中的<tomcat-users>添加
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,admin,admin-gui"/>
验证是否添加成功:
需要输入用户名和密码,这个时候输入设置的用户名和密码,正常则进入,没有权限则报403,检查上面的配置。还有一个需要注意的情况是tomcat8可能需要在这里去掉一点东西。
打开webapps下的host-manager和manager,都有一个共同的文件夹META-INF,里面都有context.xml 需要配置 context.xml。
把 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> 去掉即可。因为这里限制了 只有本地才可以访问。2.修改tomcat的项目路径,配置文件在conf下,如下
<Context docBase="H:\apache-tomcat-7.0.73-web\webapps\taotaoweb" path="/" debug="0" reloadable="true"/>
这里的docbase是项目的路径。reloadable是在修改jsp页面的时候,不需要重启自动加载。path配置是指在根路径。
2.在maven中添加配置
<build>
<finalName>taotaoweb</finalName>
<!-- directory缺省情况下指向target -->
<!--<directory>${basedir}/target</directory>-->
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8081</port>
<path>/</path>
</configuration>
</plugin>
<!-- mvn cargo:redeploy -->
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<wait>true</wait>
<container>
<containerId>tomcat7x</containerId><!-- 这个是固定的,如果是tomcat7就这样配置 -->
<type>remote</type><!-- 远程部署类型必须是remote -->
</container>
<configuration>
<type>runtime</type><!-- 如果你在容器属性中指定类型为"remote"的话,那么你必须在如下配置type==runtime -->
<properties><!-- 这里的是uri,并且,配置固定 -->
<cargo.remote.uri>http://127.0.0.1:8081/manager/text</cargo.remote.uri>
<cargo.remote.username>tomcat</cargo.remote.username><!-- tomcat配置的manager的用户名和密码 -->
<cargo.remote.password>tomcat</cargo.remote.password>
<update>true</update><!-- 一定要配置<update>true</update>,不然会报错。 -->
<!-- <path>/${project.build.finalName}</path> -->
<!-- war文件路径缺省情况下指向target 这里的配置和最上面的fileName效果一样。-->
<!-- <warFile>${basedir}/target/${project.build.finalName}.war</warFile>-->
</properties>
</configuration>
<deployables>
<deployable>
<groupId>com.taotao</groupId><!-- 这两个可以配置成占位符的形式 -->
<artifactId>taotao-manager-web</artifactId>
<type>war</type><!-- 打成war包 -->
<properties>
<context>/taotaoweb</context><!--项目部署后文件夹名字 -->
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
<!-- Test 编译跳过测试-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests><!-- 跳过测试 -->
</configuration>
</plugin>
<!-- War 打包配置包名-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>taotaoweb</warName>
<failOnMissingWebXml>false</failOnMissingWebXml><!-- 使用maven创建项目时有时在pom.xml的war处出现failOnMissingWebXml的错误 -->
</configuration>
</plugin>
</plugins>
</build>
如果想抽取出来一些配置文件,就可以使用占位符的形式,这样的话,方便修改。
在项目的根目录下执行一下三个命令
mvn clean compile
mvn clean package
mvn cargo:redeploy
查看结果。
注意:这里会有一个问题。就是每次部署项目,tomcat就会内存泄露一次,多了以后就会内存溢出而停止工作
解决方法:
一,部署多次以后,重启一次tomcat
二,参考