你的位置:首页 > Java教程

[Java教程]Eclipse下maven部署web项目到tomcat7(兼容tomcat8)


1.下载tomcat7并配置好JAVA_HOME,tomcat7\webapps目录除了manager之外,其它都可以删除(删除没用的,可加速tomcat的启动).

2.新建系统变量CATALINA_HOME,值为:C:\opensource\tomcat-7.0.34,在系统变量  Path的最后面添加%CATALINA_HOME%\lib; %CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar   注意它们之间的分号,一定是英文的分号。

3.tomcat7\conf\tomcat-users.

  <role rolename="admin-gui" />  <role rolename="manager-gui" />  <role rolename="manager-script"/>  <user username="admin" password="eteda" roles="admin-gui,manager-gui,manager-script"/>

当然用户名和密码可以不一样,但没有manager-gui就不能通过浏览器去访问manage应用,没有manager-script就不能通过manage去上传war包达到部署的目的.

3.配置maven的setting.

修改%MAVEN_HOME%\conf\setting.

在<servers>标签中加入

<server>    <id>tomcat7</id>    <username>admin</username>    <password>admin</password> </server>

注意这里用户名、密码必须为manager-gui角色的用户,这里设置需要与之前tomcat配置时的角色分配对应起来。

4.在web项目的pom.注:url也必须有/text,否则也上传不了war包)

<project ="http://maven.apache.org/POM/4.0.0" ="http://www.w3.org/2001/  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.test</groupId>  <artifactId>testweb</artifactId>  <packaging>war</packaging>  <version>1.0</version>  <name>testweb Maven Webapp</name>  <url>http://maven.apache.org</url>  <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>  <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><!--       <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-resources-plugin</artifactId>        <version>2.6</version>        <executions>          <execution>            <id>copy-resources</id>            <phase>process-resources</phase>            <goals>              <goal>resources</goal>            </goals>            <configuration>              <encoding>UTF-8</encoding>              <outputDirectory>${project.build.directory}/${project.deploy}</outputDirectory>              <resources>                <resource>                  <directory>src/main/resources/</directory>                  <includes>                    <include>*.-->      <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>  <dependencies>    <dependency>      <groupId>org.apache.tomcat</groupId>      <artifactId>tomcat-servlet-api</artifactId>      <version>${project.tomcat.version}</version>      <scope>provided</scope>    </dependency>  </dependencies></project>

5.tomcat7要先启动,在命令行转到项目目录下输入d:\maven3\bin\mvn tomcat7:deploy看结果.(注:不是tomcat:deploy)

在eclipse配置好外部的maven,在eclipse的run configurations建一个Maven Build:Name随便起一个名字(如tomcat7_redeploy),Base directory选项目目录${workspace_loc:/testweb},goals填tomcat7:deploy.或tomcat7:redeploy

deploy:如果已经部署过,再deploy就会失败.去tomcat7的webapps删除已经部署过的就行了.

6.五个必须掌握的maven命令

1). mvn help:describe 你是否因为记不清某个插件有哪些goal而痛苦过,你是否因为想不起某个goal有哪些参数而苦恼,那就试试这个命令吧,它会告诉你一切的. 参数: 1. -Dplugin=pluginName 2. -Dgoal(或-Dmojo)=goalName:与-Dplugin一起使用,它会列出某个插件的goal信息,如果嫌不够详细,同样可以加-Ddetail.(注:一个插件goal也被认为是一个 “Mojo”) 下面大家就运行mvn help:describe -Dplugin=help -Dmojo=describe感受一下吧!

2). mvn archetype:generate 你是怎么创建你的maven项目的?是不是像这样:mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.ryanote -Dartifact=common,如果你还再用的话,那你就out了,现代人都用mvn archetype:generate了,它将创建项目这件枯燥的事更加人性化,你再也不需要记那么多的archetypeArtifactId,你只需输入archetype:generate,剩下的就是做”选择题”了.

3). mvn tomcat:run 用了maven后,你再也不需要用eclipse里的tomcat来运行web项目(实际工作中经常会发现用它会出现不同步更新的情况),只需在对应目录(如/ryanote)里运行 mvn tomat:run命令,然后就可在浏览器里运行http://localhost:8080/ryanote查看了.如果你想要更多的定制,可以在pom.

4). mvnDebug tomcat:run 这条命令主要用来远程测试,它会监听远程测试用的8000端口,在eclipse里打开远程测试后,它就会跑起来了,设断点,调试,一切都是这么简单.上面提到的那几个参数在这里同样适用.

5). mvn dependency:sources 故名思义,有了它,你就不用到处找源码了,运行一下,你项目里所依赖的jar包的源码就都有了

下面介绍几个常用的Goal

命令描述
tomcat:deploy部署一个web war包
tomcat:reload重新加载web war包

tomcat:start

启动tomcat

tomcat:stop

停止tomcat

tomcat:undeploy

停止一个war包
tomcat:run启动嵌入式tomcat ,并运行当前项目