一.使用插件
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解壓后訪問