具体方法如下:
- Tomcat7的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户。这里我把所用的权限都添加给admin用户了,具体代码如下:
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
- Maven的Server的配置:在Maven的安装路径找到conf目录下的setting.xml文件,在<servers>节点中添加tomcat7下配置的用户信息(id可以任意填写,但username和password必须和步骤1一致):
<server>
tomcat7
</id>admin
</username>password
</password></server>
- 在Web项目的pom.xml文件的<plugins>节点中,添加tomcat7的maven插件:
<plugin>
org.apache.tomcat.maven
</groupId>tomcat7-maven-plugin
</artifactId>2.1
</version>http://localhost:8080/manager/text
</url> <username>admin</username> <!--此处用户名及密码也和第2步一致,反正我是这样的 --> <password>password</password><server>tomcat7</server> <!-- 此处的名字必须和setting.xml中配置的ID一致-->
<path>/mavenProject</path> <!-- 此处的名字是项目发布的工程名-->
</configuration>
</plugin>
最后,只需要maven build,然后在Goals中填上tomcat7:deploy就可以run起来了(必须事先启动tomcat服务器)。如果幸运的话,你第一回就能够成功哟,这样你只需要输入localhost:8080/项目名称,就可以看到你的页面了。如果是成功的话,你tomcat的安装目录webapps显示两个多出连个东东,如图。文件夹的名称是我项目的名字。
接下来就该来聊聊过程中出现的问题了,想必这是最痛苦的时候了。
我出现过以下两个ERROR。1. Failed to execute goalorg.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on projectpop-webs-server: Cannot invoke Tomcat manager:Error writing to server ->[Help 1]
2. ERROR] Failed to execute goalorg.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy (default-cli) onproject myproject: Cannot invoke Tomcat manager: Software caused connectionabort:socket write error -> [Help 1]
这两个问题我都出现过,前一个问题是用pom.xml配置(在下面)中第一种方法build的,后一个错误使用第二种方法build的,参考了网上各种各样的方法都没解决我的问题。最后最后,就是这么easy,把一个html改成text就好了。原谅我6和7都是用的html,姑娘我觉得有什么关系呢,结果就是这么大的关系,你说咋办。
解决方法:使用tomcat6的时候,配置如下:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<server>tomcat</server>
<url>http://localhost/manager/html</url>
<path>/</path>
</configuration>
</plugin>
如果是tomcat7的话,url必须改成这样
<url>http://localhost/manager/text</url>
POM.XML配置有两种方法:1)在project的build节点下 添加tomcat-maven-plugin插件信息,如下写法添加了tomcat6和tomcat7的插件,如只用1种可以只写一个
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<configuration>
<url>http://localhost:8080/manager/html</url>
<server>tomcat</server>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcat7</server>
<username>admin</username>
<password>admin</password>
</configuration>
</plugin>
</plugins>
--2.0-SNAPSHOT版本已经release了
2) 在project节点下,在插件仓库(plugin repositories)和普通仓库(repositories)中添加以下仓库到pom.xml,保证maven可以从仓库中下载到tomcat-maven-plugin插件,少添加了这段信息,会出现如下报错信息:
No plugin found for prefix 'tomcat' in the current project andin the plug(这个问题我也出现过,我思考应该是这样的原因。有时候第一次发布的时候正常,再发布的时候就错误了。网上是这样讲的,如果第一种方法,发布的时候tomcat7:deploy,但有些人再次发布就有错。但是如果用以下这个方法,就可以再次发布,goals上填tomcat:redeploy。我先用的第二种,后来又换成第一种,后来发现时html那儿错了,跑起来了也就啥也不顾了,不过这也是一种方法,大家有问题的时候可以试用以下哟。)
<repositories>
<repository>
<id>people.apache.snapshots</id>
<url>
http://repository.apache.org/content/groups/snapshots-group/
</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>apache.snapshots</id>
<name>Apache Snapshots</name>
<url>
http://repository.apache.org/content/groups/snapshots-group/
</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
就这么简单,折腾了好一会儿,心塞,感觉所有的问题全被我全碰到过!关于SSM整个框架的搭建以及其中的遇到的问题,我陆续会发出来,与大家共享,希望能与大家一块儿进步。