当前位置:首页 > CN2资讯 > 正文内容

java自动化部署到windows服务器服务器上

1天前CN2资讯


简述

作为一只后台狗,在使用Java为技术栈来开发后端服务应用的时候,或多或少的都需要自己手动部署。一开始,觉得写完一次自己手动部署到服务器上,还觉得新鲜感还不错,毕竟看着黑黑的terminal有种莫名的兴奋。后来服务端写完,需要改动web应用的时候,而且一次需要部署三到四个应用的时候,一股恶心感从内而外喷涌而出。
本文记录了自己工作中所用到的自动化部署(偷懒)历程,有需要的程序汪自行收藏。

辛酸之路

环境

由于工作中使用的IDE是eclipse,使用Maven进行包管理,所以,以下所涉及的都是基于Java 1.8,Maven 3.3.9,Elicpse Luna 4.4.2。

历程
  • TOP1 Maven插件配置

项目中如果有使用Maven的话,则可以很方便的以tomcat7为例,在pom文件中配置一个插件即可轻松实现,代码如下:

<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://server:port/manager/text</url> <username>admin</username> <password>admin</password> <update>true</update> <path>/wepapp</path> </configuration> </plugin>

此处注意url节点。另外需要在tomcat服务器的conf/tomcat-users.xml配置一个admin的用户权限。

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

大功告成,运行mvn tomcat7:deploy,你就会惊奇的发现war文件就到了对应的tomcat下的webapps目录之中了。

  • TOP2 Linux脚本部署
    tomcat虽然部署麻烦,但是就稳定性来说,比起其它的web容器还是稍微好一丢丢。略过tomcat的坑不说,服务器中往往会有多个tomcat存在,特别是在测试的服务器上,我司放了有10多个tomcat,这样,作为一个 没有专门部署人员的小团队来说,简直是个噩梦,部署几个应用需要执行一大丢命令。
    会偷懒的人往往就会写好一些常用的部署脚步,避免重复性的工作,在这里,我只简单介绍自己所使用的一种脚本,就是根据tomcat容器所在路径找到所在进程,杀死进程,然后进行重启。
#!/bin/bash tomcat_path1=/home/tomcat/tomcat_r3 cd $tomcat_path1 echo xxx的tomact路径是$tomcat_path1 # 找到tomcat1的进程id tomcat1_pid=$(ps -ef|grep $tomcat_path1|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ') if [ "$tomcat1_pid" ];then echo xxx的tomact进程 id是 $tomcat1_pid # 杀掉tomcat1进程 if kill -9 $tomcat1_pid then echo 成功杀死xxx的进程 else echo xxx进程没杀死,尴尬 fi else echo XXX进程已经挂掉了 fi # 启动tomcat2并重定向到日志输出 sh $tomcat_path2/bin/startup.sh echo 重启xxx
  • TOP3 Windows与Linux架桥互通
    由于是在windows中进行开发工作,服务器使用的是cent os,所以又会多出许多重复性的工作。所以我选择使用putty,在windows与Linux之间架一个桥,从而能够方便的上传文件以及对远程服务器进行操作。

整体思路是,本地打包maven项目,打包完成之后上传到服务器WEB容器对应目录,然后调用我们上一步的服务器脚本,完成整体项目部署流程。批处理文件代码示例如下:

@echo off set project_path=xxx set server_user_1=root set server_passwd_1=xxx set server_ip_1=serverip set local_file1=%project_path1%\target\xxx.war set deploy-shell=test-web-deploy.sh echo 当前使用的JDK 版本: java -version echo 开始打包 E: cd %project_path% call mvn clean install echo 打包完毕 echo 开始上传xxx到服务器 call pscp -P port -l %server_user_1% -pw %server_passwd_1% -r %local_file1% %server_ip_1%:%server_path1% echo 上传xxx完毕 echo 开始运行脚本 call plink -P port %server_user_1%@%server_ip_1% -pw %server_passwd_1% sh %deploy-shell%
效果

终于鸟枪换炮了,感觉自己又多了好多时间可以做其他的(休息)事了。测试了一下,效果还是很令人满意的,花在部署上的时间已经几近为零。

结论

本文仅适合在自己负责的项目中简单进行自动化的部署(偷懒),基于本文,可以扩展发挥做一个自动化部署系统。

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/30405.html

    分享给朋友:

    “java自动化部署到windows服务器服务器上” 的相关文章

    深入探讨144GB显存显卡在深度学习中的应用与优势

    在谈到现代显卡时,144GB显存无疑成为了一个引人注目的热门话题。显存是显卡中极为关键的一部分,决定着我们在高性能计算、图形处理和深度学习等领域的使用体验。显存的容量直接影响到显卡在执行复杂任务时的能力,而144GB的显存容量,帮助我们突破了许多传统显存限制。 首先,显存的基本概念就像是计算机的临时...

    inet.ws纽约:高性能VPS服务与折扣优惠码解析

    inet.ws是一家新兴的互联网服务提供商,成立于2020年。尽管公司年轻,但它凭借创新的VPS服务迅速在市场上占据了一席之地。最让人称道的是,inet.ws致力于为用户提供稳定和高效的云服务器体验,尤其是在他们的纽约数据中心,这里被认为是其最重要的运营点之一。 在发展的过程中,inet.ws不断完...

    香港云服务器:灵活选择与网络优势助力企业发展

    香港云服务器作为一种现代化的网络托管服务,逐渐成为越来越多企业和个人用户的首选。这种服务的核心就是将服务器放置在香港的数据中心,提供灵活的云计算资源。对于希望在云端运作的用户来说,了解香港云服务器的定义与特点是非常重要的。 首先,香港云服务器的产品类型多种多样,从轻量云主机到快杰云主机,再到裸金属服...

    揭秘 cheapnat 优惠码的省钱技巧与使用攻略

    什么是 cheapnat 优惠码 我最近发现,cheapnat 优惠码成为了网络用户省钱的绝佳利器。它们通常是特定服务或产品的折扣代码,可以帮助用户在购买 VPS、域名注册或代理服务时享受不同程度的价格优惠。无论你是个人用户还是小型企业,合理利用这些优惠码都能帮你减少开支,同时享受到高质量的服务。...

    波测评分析及其在医疗与教育领域的重要性

    波测评的定义与重要性 波测评是一种重要的技术手段,专注于评估波动的特性和行为。我发现,这种测评方法在多个行业中都扮演了至关重要的角色,比如医疗、工业和电力等领域。以脑波测评为例,它不仅可以帮助医生了解病人的大脑状态,还能在教育领域评估学习能力。这些应用展示了波测评技术在科学与技术进步中的不可或缺性。...

    NameSilo续费优惠码2024:如何利用优惠码降低域名续费成本

    在域名注册的世界中,NameSilo是一颗璀璨的明珠。成立于2010年的这家公司,迅速赢得了用户的青睐。人们总是追求优质且经济实惠的服务,而NameSilo无疑满足了这一需求。便宜的价格和稳定的服务让它在众多注册商中脱颖而出。 回想起最初使用NameSilo的经历,选择它不仅因为价格的吸引,更多的是...