一.使用插件
tomcat 8.5
tomcat-users.xml中添加这一行就ok
<user username="admin" password="admin" roles="manager-script"/>
maven的settings.xml在servers标签中添加
<server>
<id>tomcatserver</id>
<username>admin</username>
<password>admin</password>
</server>
下图是maven配置文件位置
在pom.xml中添加(path是你的项目名,注意和web.xml中保持一致)
1 <plugin> 2 <groupId>org.apache.tomcat.maven</groupId> 3 <artifactId>tomcat7-maven-plugin</artifactId> 4 <version>2.2</version> 5 <configuration> 6 <url>http://127.0.0.1:8080/manager/text</url> 7 <server>tomcatserver</server> 8 <path>/usermodule</path> 9 <username>admin</username> 10 <password>admin</password> 11 </configuration> 12 </plugin>
接下来去tomcat的bin目录下启动tomcat,此步骤不做会出现cannot invoke tomcat manager,当然上面用户名,密码配错也会有这个异常,如果启动tomcat一闪而过,要么是jdk没配置对,要么就是tomcat
的server.xml中host标签中包含错误的context,删除即可,删除时不要把</host>删除
第一次运行:clean package tomcat7:deploy,去项目目录观察下是否把resources下的文件打包进去,如果没有添加以下配置
1 <resource> 2 <directory>src/main/resources</directory> 3 <includes> 4 <include>**/*</include> 5 </includes> 6 </resource>
如果使用了orm框架,比如mybatis,hibernate这种,src/main/java下通常会有XXX.xml的配置文件,想要被打包进去,还要添加
1 <resource> 2 <directory>src/main/java</directory> 3 <includes> 4 <include>**/*.xml</include> 5 </includes> 6 </resource>
接下来执行tomcat7:redeploy(热部署)即可,如果添加了新的文件,执行clean package redeploy即可,这种方式日志输出在tomcat的命令框中,看起来不是很方便
声明:tomcat7:run启动了插件带的tomcat而不是你配置的tomcat
二.使用eclipse启动tomcat,加载maven web项目
tomcat 9
先添加好server,然后右键open(server已有项目,先remove后clean),把deploypath改成tomcat的webapps路径(serverpath测试了不修改也没什么问题),然后启动
此时去tomcat的webapp下,项目中没有只有包的结构没有class文件,导致一访问就出现class not found,还有一点几率出现Illegal access: this web application instance has been stopped already
顺序查看:
1.buildpath 中的source必须有java,resource
2.deployment assembly要加入maven依赖
3.project->build automaticlly开启
4.如果修改了project facts中的dynamic web module的版本,必须在web.xml中修改头部对应的version以及xsi:schemaLocation对应的尾部xsd版本
三.maven-war-plugin,maven-dependency-plugin
最初的想法,尝试用这两个插件直接打包到tomcat的webpps目录下,配置如下
1 <plugin> 2 <groupId>org.apache.maven.plugins</groupId> 3 <artifactId>maven-war-plugin</artifactId> 4 <version>2.1.1</version> 5 <configuration> 6 <!--指定web.xml的路径 --> 7 <webXml>src\main\webapp\WEB-INF\web.xml</webXml> 8 <!--指定jsp、js、css的路劲 --> 9 <warSourceDirectory>src\main\webapp</warSourceDirectory> 10 </configuration> 11 </plugin> 12 13 <!--打war包到指定的目录下 --> 14 <plugin> 15 <groupId>org.apache.maven.plugins</groupId> 16 <artifactId>maven-dependency-plugin</artifactId> 17 <version>2.8</version> 18 <executions> 19 <execution> 20 <id>copy-war</id> 21 <phase>package</phase> 22 <goals> 23 <goal>copy</goal> 24 </goals> 25 <configuration> 26 <artifactItems> 27 <artifactItem> 28 <groupId>${project.groupId}</groupId> 29 <artifactId>${project.artifactId}</artifactId> 30 <version>${project.version}</version> 31 <type>${project.packaging}</type> 32 </artifactItem> 33 </artifactItems> 34 <!-- <outputDirectory>${dist.console.war.dir}</outputDirectory> --> 35 <!--指定war包保存地址--> 36 <outputDirectory>D:\apache-tomcat-9.0.24-eclipse\webapps</outputDirectory> 37 <includes> 38 <include>*.war</include> 39 </includes> 40 </configuration> 41 </execution> 42 </executions> 43 </plugin>
通过这种方式执行clean package打包后会在tomcat的webapps下生成了wa包,接下来启动tomcat解压后访问
原文地址:https://www.cnblogs.com/tele-share/p/11514327.html