maven 自动部署到 tomcat7

来源:互联网 发布:淘宝衣服商标被撕掉 编辑:程序博客网 时间:2024/04/30 00:59

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种可以只写一个

[html] view plaincopy
  1. <pluginManagement>  
  2.     <plugins>  
  3.         <plugin>  
  4.             <groupId>org.apache.tomcat.maven</groupId>  
  5.             <artifactId>tomcat6-maven-plugin</artifactId>  
  6.             <version>2.0-SNAPSHOT</version>       
  7.             <configuration>  
  8.               <url>http://localhost:8080/manager/html</url>   
  9.               <server>tomcat</server>  
  10.             </configuration>         
  11.         </plugin>  
  12.         <plugin>  
  13.             <groupId>org.apache.tomcat.maven</groupId>  
  14.             <artifactId>tomcat7-maven-plugin</artifactId>  
  15.             <version>2.0-SNAPSHOT</version>  
  16.             <configuration>  
  17.                 <url>http://localhost:8080/manager/html</url>   
  18.                 <server>tomcat</server>  
  19.             </configuration>  
  20.         </plugin>  
  21.     </plugins>  
  22. </pluginManagement>  

--2.0-SNAPSHOT是最新版本还未realse,最新realse的版本是2.0-beta-1

--html可以替换成text

 

b.在project节点下,添加仓库信息,保证maven可以从仓库中下载到tomcat-maven-plugin插件,少添加了这段信息,没有下载到插件,导致报错,浪费了不少时间。

网上的帖子说要添加如下两段信息,个人怀疑只需要添加1段。

 

[html] view plaincopy
  1. <repository>  
  2.     <id>people.apache.snapshots</id>  
  3.     <url>  
  4.         http://repository.apache.org/content/groups/snapshots-group/  
  5.     </url>  
  6.     <releases>  
  7.         <enabled>false</enabled>  
  8.     </releases>  
  9.     <snapshots>  
  10.         <enabled>true</enabled>  
  11.     </snapshots>  
  12. </repository>  


[html] view plaincopy
  1. <pluginRepository>  
  2.     <id>apache.snapshots</id>  
  3.     <name>Apache Snapshots</name>  
  4.     <url>  
  5.         http://repository.apache.org/content/groups/snapshots-group/  
  6.     </url>  
  7.     <releases>  
  8.         <enabled>false</enabled>  
  9.     </releases>  
  10.     <snapshots>  
  11.         <enabled>true</enabled>  
  12.     </snapshots>  
  13. </pluginRepository>  


 2.配置setting.xml,%MAVEN_HOME%\conf\setting.xml(前提是在myeclipse preferences中maven启用本地安装版本并设置用户setting.xml为本地conf下的setting.xml,而不是插件,插件应该是“我的文档”\.m2\setting.xml),

在<servers>标签中加入

[html] view plaincopy
  1. <server>  
  2.        <id>tomcat</id>  
  3.        <username>admin</username>  
  4.        <password>admin</password>  
  5. </server>  

id与pom.xml文件配置相同,用户名密码与tomcat_user相同。

本部分配置也可写在pox.xml <plugin>的<configuration>中

 

3.给tomcat配置用户,%TOMCAT_HOME%\conf\tomcat_user.xml 增加以下角色和用户,用于tomcat_maven_plugin自动部署工程

[html] view plaincopy
  1. <role rolename="manager-gui"/>    
  2. <role rolename="manager-script"/>    
  3. <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的自动部署功能。


1首先要保证自己电脑上装了Tomcat服务器

进入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>  


3 启动tomcat8,在cmd窗口中通过cd命令转入项目目录

输入mvn tomcat7:deploy

这里需要解释一下为什么不是tomcat8而是tomcat7,因为maven命令还不支持tomcat8,而这里输入tomcat7其实就是

执行将web程序部署到tomcat服务器的意思。

至此,配置完成,以后就可以增量发布新增功能到系统中去了。


0 0
原创粉丝点击