利用maven发布web项目到远程服务器
来源:互联网 发布:八字预测软件下载 编辑:程序博客网 时间:2024/06/05 08:58
项目发布的一般步骤是本地打好war包,然后通过ssh连接远程服务器,通过xftp等方法,将项目上传到远程tomcat中,操作和过程较为繁琐。
通过maven可以一次完成全部工作,只需一行命令即可。
本文远程服务器使用tomcat7。maven发布方式,使用的是tomcat的manage控制台进行项目发布的。即启动tomcat后显示的主页。
tomcat manger console使用户可以直接增加或者发布新的应用,重启,停掉,卸载当前应用。默认是禁用状态,需要使用相应用户角色和授予权限才能使用。所以需要先配置tomcat用户权限。在tomcat安装目录下conf文件夹中的tomcat-users.xml中新增:
<role rolename="admin-gui"/><role rolename="admin-script"/><role rolename="manager-gui"/><role rolename="manager-script"/><role rolename="manager-jmx"/><role rolename="manager-status"/><role rolename="admin"/><role rolename="manager"/><user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui,admin,manager"/>
Tomcat Manager 4种角色的大致介绍(下面URL中的*为通配符):
manager-gui
允许访问html接口(即URL路径为/manager/html/*)
manager-script
允许访问纯文本接口(即URL路径为/manager/text/*)
manager-jmx
允许访问JMX代理接口(即URL路径为/manager/jmxproxy/*)
manager-status
允许访问Tomcat只读状态页面(即URL路径为/manager/status/*)
从Tomcat Manager内部配置文件中可以得知,manager-gui、manager-script、manager-jmx均具备manager-status的权限,也就是说,manager-gui、manager-script、manager-jmx三种角色权限无需再额外添加manager-status权限,即可直接访问路径”/manager/status/*”。
第二步在maven项目中添加maven-compiler-plugin、tomcat7-maven-plugin、maven-surefire-plugin和maven-war-plugin组件。
顾名思义:
maven-compiler-plugin:用来使用指定jdk编译java项目源。
tomcat7-maven-plugin:对tomcat7中的war包进行解包等操作。
maven-surefire-plugin:在项目构建过程中执行单元测试。
maven-war-plugin:收集与web应用有关的所有资源,将项目打成war包。
pom.xml中新增如下设置:
<!-- 设置资源编码 --><properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <packaging>war</packaging> <build> <finalName>rspsm-dp-plus-console</finalName> <defaultGoal>compile</defaultGoal> <plugins> <!-- 编译相关插件,1.7是jdk版本 --> <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> <!--tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <!-- tomcat地址,manager/text该地址可追加命令 --> <!--http://localhost:8080/manager/stop?path=/ //停止 --> <!--http://localhost:8080/manager/start?path=/ //启动 --><!--http://localhost:8080/manager/text/deploy?path=/ //部署 --><!--http://localhost:8080/manager/text/undeploy?path=/ //卸载 --> <url>http://172.23.26.61:8080/manager/text</url><!-- 远程服务器url地址 --> <username>tomcat</username> <password>tomcat</password> <!-- 此处的名字是项目发布的工程名--> <path>/rspsm-dp-plus-console</path> </configuration> </plugin> <!-- 忽略项目中测试错误,在发布过程中会运行项目中的测试代码--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> <!-- war插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.0.0</version> <configuration> <webResources> <resource> <!-- WEB-INF文件地址,idea是web,eclipse是webRoot--> <directory>\src\main\webapp</directory> </resource> </webResources> </configuration> </plugin> </plugins> </build>
在idea terminal中cd到要发布的模块,输入maven命令。
mvn tomcat7:deploy
项目将以war包形式自动发布到远程服务器。
注意使用maven对项目进行发布时,首先要保证远程服务器在启动状态,不然会报异常:
Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:deploy (default-cli) on project rspsm-dp-plus-console: Cannot invoke Tomcat manager: Connection to http://172.23.26.61:8080 refused: Connection refused: connect
同时要保证tomcat7-maven-plugin的url配置为 “服务器url/manager/text” 因
为发布使用的是manager/text的api。否则会报异常:
Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:deploy (default-cli) on project rspsm-dp-plus-console: Cannot invoke Tomcat manager: Connection reset by peer: socket write error
- 利用maven发布web项目到远程服务器
- 使用maven发布idea中web项目到远程tomcat服务器
- Eclipse利用Maven的插件部署web项目到远程tomcat服务器
- 远程部署Maven web项目到web服务器
- maven发布web项目到tomcat,并启用远程调试
- 远程服务器发布web项目
- Ant学习系列 -- Web项目发布到远程服务器上
- 15、利用maven发布web项目到tomcat
- 16、利用maven发布web项目到jetty
- 如何利用Ant远程发布Web项目
- 利用Gradle发布项目到JCenter、Maven
- 将SpringBoot Maven项目发布到远程tomcat服务器步骤及相关问题解决
- Jenkins之——构建Java Maven项目(Jar)并发布到远程服务器
- maven 部署项目到远程服务器
- Maven 发布项目到Jetty服务器
- Maven 发布项目到Jetty服务器
- maven部署web项目到远程tomcat6
- 利用eclipse发布web项目到tomcat
- pom文件配置
- Servlet运行原理,乱码问题
- 关于ThinkPad笔记本电脑显示“电源已接通,未充电”
- hihoCoder太阁最新面经算法竞赛题解(7)
- JSP +Servlet 文件上传
- 利用maven发布web项目到远程服务器
- 提高PHP性能的方法
- RCNN学习笔记(11):R-FCN: Object Detection via Region-based Fully Convolutional Networks
- 8. String to Integer (atoi)
- spring源码断点调试
- HDU 3530 Subsequence(单调队列)
- memcached
- hadoop入门(六)JavaAPI+Mapreduce实例wordCount单词计数详解
- 进程终止及等待相关