使用tomcat7-maven-plugin部署Web项目
一、环境准备
我使用的环境是:Window 10、Tomcat 8.0.36、maven3、tomcat7-maven-plugin 2.2版本。
二、设置环境变量
安装Tomcat8.0.36和maven之后设置环境变量,Tomcat设置环境变量时,key为必须为CATALINA_HOME。
1.设置maven环境变量
MAVEN =D:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.1.3\plugins\maven\lib\maven3\bin
(我直接引用了InteljiIDEA中的maven)
2、设置TOMACAT环境变量
CATALINA_HOME=E:\tomcat\apache-tomcat-8.0.36
3、将他们添加到PATH中
PATH=%MAVEN%;%CATALINA_HOME%\bin;
三、在Tomcat中配置用户权限
在tomcat的配置文件tomcat_user.xml(%CATALINA_HOME%\conf\tomcat.user.xml)中的< tomcat-users >标签中添加
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="username" password="password" roles="manager-gui,manager-script"/>
- 1
- 2
- 3
四、在Maven的settings.xml配置Server
在Maven的配置文件settings.xml(%MAVEN%\conf\settings.xml)中的< servers > 中加入
<server>
<id>tomcat8</id>
<username>username</username>
<password>password</password>
</server>
- 1
- 2
- 3
- 4
- 5
这里的username 、password就填我们在tomcat中配置的那个用户名,和密码
这里的设置的 id为 tomcat8 我们将在项目的 pom.xml中填写。
五、在项目的pom.xml中配置tomcat7-maven-plugin插件
在< build> 中引入插件:
<build>
<pluginManagement>
<plugins>
...
<!-- 配置tomcat 插件 -->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>tomcat8</server>
<path>/test</path>
<update>true</update>
</configuration>
</plugin>
</plugins>
</pluginManagement>
....
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
注意
1、这里的 < server> 中填写的就是为们在%MAVEN%\conf\settings.xml配置中的那个id
即 tomcat8.
2、由于我用的tomcat8这里的< url> 必须配置成 xxx/manager/text否则会部署不成功
3、由于部署时会下载一些东西最还是在 pom.xml 的< project >标签下加入以下代码:
<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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
六、deploy
1、开启tomcat
2、在pom.xml所在的目录执行 mvn tomcat7:deploy 命令部署项目。
七、遇到的问题
1、在Window系统下执行在执行 mvn tomcat7:undeploy时,会有残留在tomcat目录下
解决方法:在tomcat的配置文件context.xml中 的< Context >标签中添加属性:antiJARLocking=”true” antiResourceLocking=”true”
即
<Context antiJARLocking="true" antiResourceLocking="true">
一个基本maven项目的pom.xml配置
版权声明:本文为博主原创文章,未经博主允许不得转载。
继续之前创建的test项目,一个基本项目的pom.xml文件,通常至少有三个部分
第一部分,项目坐标,信息描述等
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.company.project</groupId>
- <artifactId>module</artifactId>
- <packaging>war</packaging>
- <version>0.0.1-SNAPSHOT</version>
- <name>test Maven Webapp</name>
- <url>http://maven.apache.org</url>
modelVersion:pom文件的模型版本
关于group id和artifact id,为了便于多人多模块协同开发管理(以后会讲),建议使用以下命名规范
group id:com.公司名.项目名
artifact id:功能模块名
packaging:项目打包的后缀,war是web项目发布用的,默认为jar
version: artifact模块的版本
name和url:相当于项目描述,可删除
group id + artifact id +version :项目在仓库中的坐标
第二部分,引入jar包
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
这是创建项目时自动生成的,将junit-3.8.1.jar引入到项目中。
dependency:引入资源jar包到本地仓库,要引入更多资源就在<dependencies>中继续增加<dependency>
group id+artifact id+version:资源jar包在仓库中的坐标
scope:作用范围,test指该jar包仅在maven测试时使用,发布时会忽略这个包。需要发布的jar包可以忽略这一配置
刚开始本地仓库是空的,maven会从远程仓库自动下载这个jar到本地仓库,下载完后,就可以在项目中使用这个jar了
如果将<dependency>的内容删除,junit-3.8.1.jar也会自动消失,无法使用
第三部分,构建项目
- <build>
- <finalName>helloworld</finalName>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.5.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>3.0.1</version>
- <configuration>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- </plugins>
- </build>
build:项目构建时的配置
finalName:在浏览器中的访问路径,如果将它改成helloworld,再执行maven--update,这时运行项目的访问路径是
http://localhost:8080/helloworld/ 而不是项目名的 http://localhost:8080/test
plugins:插件,之前篇章已经说过,第一个插件是用来设置java版本为1.7,第二个插件是我刚加的,用来设置编码为utf-8
group id+artifact id+version:插件在仓库中的坐标
configuration:设置插件的参数值
使用tomcat7-maven-plugin部署Web项目的更多相关文章
- jenkins maven svn 部署web项目到本地Tomcat
查了N多网页,折腾了几个小时,终于部署成功,部署的过程比较坎坷,遇到各种问题,记录一下,不管大家是否会遇到的同样的问题,希望有所帮助: 常规操作: 1.下载jenkins,必须要做的一步,http:/ ...
- 关于Maven打包Java Web项目以及热部署插件Jrebel的使用
Java Web/Eclipse/Maven/Tomcat 最近有个新项目是java web项目,记录一下,可能比较乱.虽然没接触过Java,但是eclipse还是用过的 初识项目 同事说,项目是ma ...
- Maven实现项目构建直接部署Web项目到Tomcat
Maven实现项目构建直接部署Web项目到Tomcat配置如下: 1.Tomcat的用户及权限配置:在conf目录下,找到tomcat-users.xml,添加manager权限的用户. <ro ...
- 开发过程使用Tomcat Maven插件持续快捷部署Web项目
我在平时工作中部署Web项目到测试服务器上的Tomcat时用的是Hudson.Hudson本身已经跟SVN.Git.Maven集成并且支持添加各种插件.但如果使用Hudson,我需要配置两个任务:一个 ...
- 使用IntelliJ IDEA和Maven构建Java web项目并打包部署
爱编程爱分享,原创文章,转载请注明出处,谢谢! http://www.cnblogs.com/fozero/p/6120375.html 一.背景 现在越来越多的人使用IntelliJ IDEA工具进 ...
- 在Tomcat中部署Web项目的操作方法,maven项目在Tomcat里登录首页报404
maven项目在Tomcat里登录首页报404, 解决:编辑conf/server.xml进行配置<Host>里的<Context>标签里的path. <Context ...
- eclipse+maven远程(自动)部署web项目到tomcat
[转自] http://blog.csdn.net/dhmpgt/article/details/11197995 eclipse集成maven后可以用maven命令把web项目自动部署到tomcat ...
- 【Maven】Eclipse 使用Maven创建SpringMVC Web项目
创建环境 系统:win 10 软件:eclipse,maven. 创建步骤 创建一个Maven Web项目,可以参照:[Maven]Eclipse 使用Maven创建Java Web项目 添加spri ...
- jenkins部署web项目到webogic
注: Docker容器里安装的jenkins,Docker容易里安装的weblogic 在jenkins里面直接将打包好的 war 包通过 Publish over SSH插件 放入 weblogic ...
- [原]Jenkins(七)---jenkins项目编译测试发布由maven构建的web项目
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...
随机推荐
- Vue自定义指令和路由
一.自定义指令 除了默认设置的核心指令( v-model 和 v-show ), Vue 也允许注册自定义指令. 下面我们注册一个全局指令 v-focus,该指令的功能是在页面加载时,元素获得焦点: ...
- 2017.9.15 postgres使用postgres_fdw实现跨库查询
postgres_fdw的使用参考来自:https://my.oschina.net/Kenyon/blog/214953 postgres跨库查询可以通过dblink或者postgres_fdw来完 ...
- oracle 12C SYS,SYSTEM用户的密码都忘记或是丢失
密码 conn / as sysdba alter user system identified by Abcd1234; manual script first -->manual_scrip ...
- ubuntu用su切换,输入密码提示认证失败解决办法
ubuntu用su切换,输入密码提示认证失败,经查阅原来Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许 su 到 root ,对于桌面用户来说这个可能是为了增强安全性. 终端下 ...
- go语言25个关键字总结
var和const :变量和常量的声明var varName type 或者 varName : = valuepackage and import: 导入func: 用于定义函数和方法return ...
- 自己如何正确获取MYSQL的ADO连接字符串
1.下载安装MYSQL的ODBC数据库驱动程序(mysql-connector-odbc-5.3.4-win32.msi或者mysql-connector-odbc-5.3.4-winx64.msi) ...
- Servlet的API(二)
web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象和代表响应的response对象.request和response对象既然代表请求和响应,那我们获取 ...
- 使用PostMan快速生成代码
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.关于PostMan的下载和使用网上有很多相关的博客介绍,本文主要介绍PostMan在进行模拟Http请求后可以根据需要的 ...
- .Net Framework 与 SQL Server 2005 混乱的时间最大最小值
Net Framewrok 中,DateTime.MinValue => 0001/01/01 00:00:00SqlDateTime.MinValue.Value => 1753/01 ...
- BGP双线的真真假假
BGP双线的真真假假: 国内不少IDC服务商都号称自己是“真正的双线”.“双线单IP”.“全路由双线”,但是,这其中有没有水分?他们都是BGP双线?BGP的门槛真的这么低吗? 首先,要构建真正的BGP ...