远程部署Maven web项目到web服务器

1. Tomcat 7

这个例子说明了如何在Tomcat7打包并部署WAR文件。

1.1 Tomcat 认证
添加具有角色管理器GUI和管理脚本的用户。

%TOMCAT7_PATH%/conf/tomcat-users.xml

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>

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

注意的问题:Tomcat7开始,同时同一个用户不能即是manager-gui,同时是 manager-script 或者 manager-jmx,所以需要有script权限,只加这一个即可。


1.2 Maven 认证
添加在上面Maven 设置文件的 Tomcat 用户,是之后Maven使用此用户来登录Tomcat服务器。

%MAVEN_PATH%/conf/settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
	<servers>
	   
		<server>
			<id>TomcatServer</id>
			<username>admin</username>
			<password>password</password>
		</server>

	</servers>
</settings>
如果是这么配置,id一定要与pom中的server节点内容相同。

也可以在pom中配置:

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <charset>UTF-8</charset>
        <uriEncoding>UTF-8</uriEncoding>
        <url>http://172.20.41.201:8880/manager/text</url>
        <server>TomcatServer</server>
        <username>tomcat</username>
        <password>tomcat</password>
        <path>/jtjc_web</path>
    </configuration>
</plugin>

注意的问题:1、url:必须到/manager/text下。2、path:为war包的名字。

1.3 Tomcat7 Maven 插件
声明一个Maven的Tomcat插件。

pom.xml

	<plugin>
		<groupId>org.apache.tomcat.maven</groupId>
		<artifactId>tomcat7-maven-plugin</artifactId>
		<version>2.2</version>
		<configuration>
			<url>http://172.20.41.201:8880/manager/text</url>
			<server>TomcatServer</server>
			<path>/jtjc_web</path>
		</configuration>
	</plugin>

注意的问题:如果是项目是多个模块分开的,那么要么都要继承同一个父类pom,父类pom中包含上面的plugin配置;否则每一个模块的子pom中都要体现上面的plugin的配置,否则会报错。

1.4 发布到Tomcat
以下的命令是用来操纵Tomcat WAR文件,

注意的问题:使用deploy时确保tomcat的webapp下没有存在以上面path命名的项目在跑,如果有要用下面的redeploy命令。

mvn tomcat7:deploy 
mvn tomcat7:undeploy 
mvn tomcat7:redeploy

你可能感兴趣的:(maven,tomcat7)