From:http://my.oschina.net/angel243/blog/178554

http://yuandingjiema.iteye.com/blog/1752544

以前在项目中很少使用Maven,最近自己学习了一下maven,真的是非常强大的项目构建工具,对于依赖包的定义及版本,以及依赖包的集中管理(中央仓库)都让人惊喜(原谅我的大惊小怪,虽然Maven出来很久了,但小弟刚接触),但发现开发Web项目时,需要手动部署到Web服务器(Tomcat7),如果能自动部署到Web服务器,而不用每次手动把target下编译好的war包拷贝到Tomcat下就更好了。

    下面是具体的使用方法:

1.添加Tomcat的环境变量

新建系统变量CATALINA_HOME,值为:C:\opensource\tomcat-7.0.34(Tomcat的安装目录),然后Path的最后面添加%CATALINA_HOME%\lib; %CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\lib\jsp-api.jar

2. Tomcat的权限设置

Tomcat7的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户。这里我把所用的权限都添加给admin用户了,具体代码如下:

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

3. Maven的Server的配置:

在Maven的安装路径找到conf目录下的setting.xml文件,在<servers>节点中添加tomcat7下配置的用户信息(id可以任意填写,但username和password必须和步骤1一致):

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

4. Web项目的pom.xml文件配置

在pom.xml的<plugins>节点中,添加tomcat7的maven插件

<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>
  • 在project节点下,在插件仓库(plugin repositories)和普通仓库(repositories)中添加以下仓库到pom.xml,保证maven可以从仓库中下载到tomcat-maven-plugin插件,少添加了这段信息,会出现如下报错信息:

  • No plugin found for prefix 'tomcat' in the current project and in the plug……

  • <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>

    5. Web项目编译Maven参数设置

  • 在maven build的goals中输入命令tomcat7:deploy即可发布,run as --- run configuration下

  • 6. 常见错误及解决方法

  • eclipse中使用maven插件的时候,运行run as maven build的时候报错及解决方案:

    1. -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.

    解决方案: 参考:http://fxb4632242.iteye.com/blog/2193945

  • 可以设一个环境变量M2_HOME指向你的maven安装目录

  • M2_HOME=D:\Apps\apache-maven-3.3.1

  • 然后在Window->Preference->Java->Installed JREs->Edit,在Default VM arguments中设置

    -Dmaven.multiModuleProjectDirectory=$M2_HOME

    2. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

  • 解决方案:参考http://blog.csdn.net/fox_lht/article/details/16369147

  • jdk的设置请指定jdk目录,而非jre目录,否则会出现如上错误

  • 3. tomcat7-maven-plugin:2.0-SNAPSHOT:deploy (default-cli) on project : Cannot find war file

  • 解决方案:对于生成的war包文件命名为{project.build.finalName}

  • <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
    <warName>${project.build.finalName}</warName>
    </configuration>
    </plugin>

    Maven内置变量说明:

    1. ${basedir} 项目根目录
    2. ${project.build.directory} 构建目录,缺省为target
    3. ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
    4. ${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
    5. ${project.packaging} 打包类型,缺省为jar
    6. ${project.xxx} 当前pom文件的任意节点的内容

    [转]Maven实现直接部署Web项目到Tomcat7的更多相关文章

    1. Maven实现直接部署Web项目到Tomcat7(转)

      转载自:http://my.oschina.net/angel243/blog/178554 以前在项目中很少使用Maven,最近自己学习了一下maven,真的是非常强大的项目构建工具,对于依赖包的定 ...

    2. Maven实现直接部署Web项目到Tomcat7

      如题目,自动部署到Web服务器,直接上过程. 1.Tomcat7的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户. <role rolena ...

    3. Eclipse下maven部署web项目到tomcat7(兼容tomcat8)

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

    4. 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404

       maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...

    5. Maven实现项目构建直接部署Web项目到Tomcat

      Maven实现项目构建直接部署Web项目到Tomcat配置如下: 1.Tomcat的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户. <ro ...

    6. 开发过程使用Tomcat Maven插件持续快捷部署Web项目

      我在平时工作中部署Web项目到测试服务器上的Tomcat时用的是Hudson.Hudson本身已经跟SVN.Git.Maven集成并且支持添加各种插件.但如果使用Hudson,我需要配置两个任务:一个 ...

    7. IntelliJ IDEA14 和 Maven 系列:使用IntelliJ IDEA 14和Maven 7 创建java web项目(一)

      Intellij IDEA作为最好的Java IDE,创建Maven项目还是比较简单的,但是创建一个Maven Web项目还是要修改一些配置的,下面进行总结整理. 1前言 在创建项目中,IDEA提供了 ...

    8. Eclipse中使用Maven创建Servlet3.0 Web 项目

      摘要 Apache Maven是一个优秀的项目构建和管理工具,许多开源项目都使用Maven进行构建.由于最近工作中要用到Maven,于是这里记录下在Eclipse中使用Maven插件创建一个基于Ser ...

    9. jenkins部署web项目到webogic

      注: Docker容器里安装的jenkins,Docker容易里安装的weblogic 在jenkins里面直接将打包好的 war 包通过 Publish over SSH插件 放入 weblogic ...

    随机推荐

    1. Vi 的基本使用

      一.Vi入门  Unix 提供了全屏幕的Vi编辑器,这使我们的工作轻松不少.不少DOS用户抱怨Vi编辑器不象DOS下的编辑器如edit那么好用,这 是因为Vi考虑到各种用户的需要,没有使用某些通用的编 ...

    2. SQL分页存储过程——表名、返回的列、排序字段、排序类型、条件、页尺寸、页码

      ALTER PROCEDURE [dbo].[SP_LGY_ICU_PAGECUT] ), -- 表名 ) = '*', -- 需要返回的列 )='''', -- 排序的欄位名 , -- 設置排序類型 ...

    3. 微信token验证失败的解决方法

      一.问题由来 在使用URL和Token启用微信公众平台开发模式消息接口的时候,我们会碰到下面三种情况 1. token校验失败 这样回头检查一下各项配置是否正确.如果确定配置没有问题,请按下面的方法检 ...

    4. Shell编程基础教程6--shell函数

      6.shell函数    6.1.定义函数        简介:            shell允许将一组命令集或语句形成一个可用块,这些块成为shell函数        定义函数的格式      ...

    5. python多线程之Event(事件)

      #!/usr/bin/env python # -*- coding: utf-8 -*- import time from threading import Thread, Event import ...

    6. react.js 多个组件集成示例

      这个看得有点懵, 可能要结合其它实例看. html <!DOCTYPE html> <html> <head> <script src="http: ...

    7. Win10 VS2015 社区版切换到VS2013社区版 进行维护之前的项目

      前提:当先在Win10 OS 安装了vs2015之后开发Win UAP,之后要维护之前的WP8 版本,安装了VS2013社区版 打开后 1问.Exception from HRESULT: 0x897 ...

    8. C可变参数函数 实现

      转自:http://blog.csdn.net/weiwangchao_/article/details/4857567 C函数要在程序中用到以下这些宏: void va_start( va_list ...

    9. 模板模式与策略模式/template模式与strategy模式/行为型模式

      模板模式 模版模式,又被称为模版方法模式,它可以将工作流程进行封装,并且对外提供了个性化的控制,但主流程外界不能修改,也就是说,模版方法模式中,将工作的主体架构规定好,具体类可以根据自己的需要,各自去 ...

    10. CentOS安装中文支持

      部分文档突然成乱码了. 解决方法: 1.安装中文支持包 # yum groupinstall "Chinese Support" 2 修改# /etc/sysconfig/i18n ...