tomcat7 需要使用 tomcat-maven-plugin 的新版本,版本支持tomcat6和tomcat7,groupId也由org.codehaus.mojo改为org.apache.tomcat.maven。 可以参考看看:http://tomcat.apache.org/maven-plugin.html
主菜来了。
1.修改项目的pom.xml
a.在project节点下 添加tomcat-maven-plugin插件信息,如下写法添加了tomcat6和tomcat7的插件,如只用1种可以只写一个
- <pluginManagement>
- <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/html</url>
- <server>tomcat</server>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
--2.0-SNAPSHOT是最新版本还未realse,最新realse的版本是2.0-beta-1
--html可以替换成text
b.在project节点下,添加仓库信息,保证maven可以从仓库中下载到tomcat-maven-plugin插件,少添加了这段信息,没有下载到插件,导致报错,浪费了不少时间。
网上的帖子说要添加如下两段信息,个人怀疑只需要添加1段。
- <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>
- <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>
2.配置setting.xml,%MAVEN_HOME%\conf\setting.xml(前提是在myeclipse preferences中maven启用本地安装版本并设置用户setting.xml为本地conf下的setting.xml,而不是插件,插件应该是“我的文档”\.m2\setting.xml),
在<servers>标签中加入
- <server>
- <id>tomcat</id>
- <username>admin</username>
- <password>admin</password>
- </server>
id与pom.xml文件配置相同,用户名密码与tomcat_user相同。
本部分配置也可写在pox.xml <plugin>的<configuration>中
3.给tomcat配置用户,%TOMCAT_HOME%\conf\tomcat_user.xml 增加以下角色和用户,用于tomcat_maven_plugin自动部署工程
- <role rolename="manager-gui"/>
- <role rolename="manager-script"/>
- <user username="admin" password="admin" roles="manager-gui, manager-script"/>
4. 启动tomcat,在工程或pom.xml上右键,maven build的goals中输入命令tomcat7:deploy即可发布,或在Run Configurations->Maven build新建一个命令,base directory里选择你的web project,在Goals栏可填写你所需要的命令。
goals中使用的命令可以参考http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat7-maven-plugin/plugin-info.html
网站上线以后,为了保证网站运行的连续性,有新功能更新时,不能重启Tomcat服务器去部署新增功能。因此,就研
究一下用maven的自动部署功能。
进入Tomcat安装目录,打开..\conf\tomcat-users.xml,在这个配置文件中加入以下内容:
<role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
当然用户名和密码可以我写的不一样,但两个角色必须配置,如果没有manager-gui就不能通过浏览器管理tomcat程序,
没有manager-script就不能通过manage上传war包到服务器。
2在web项目的pom.xml配置需要下载的jar包和插件
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.deploy>deploy</project.deploy> <project.tomcat.version>8.0.0-RC5</project.tomcat.version> </properties> <dependencies> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <version>${project.tomcat.version}</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <span style="white-space:pre"> </span> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url> <username>username</username> <password>password</password> <path>/${project.artifactId}</path> </configuration> </plugin> </plugins> </build>
输入mvn tomcat7:deploy
这里需要解释一下为什么不是tomcat8而是tomcat7,因为maven命令还不支持tomcat8,而这里输入tomcat7其实就是
执行将web程序部署到tomcat服务器的意思。
至此,配置完成,以后就可以增量发布新增功能到系统中去了。