文档章节

java 一键部署war包,jar包

yale8848
 yale8848
发布于 2016/12/19 11:52
字数 630
阅读 2167
收藏 5
点赞 2
评论 0

JavaAutoDeployClient

java一键自动部署war包,jar包工具

github

csdn dowload JavaAutoDeployClient-1.1.jar

用法

直接用批处理

  • 创建 config.xml

<?xml version="1.0" encoding="utf-8" ?>
<config>
    <threadPoolSize default="5">3</threadPoolSize><!--线程池大小,如果上传服务器多的话可以调大,默认5个线程-->
    <servers>
        <server>
            <host>192.168.0.1</host><!--远程服务器地址-->
            <userName>root</userName><!--ssh登录名称-->
            <password>123456</password><!--ssh登录密码-->
            <uploads>
                <upload>
                    <local>C:\test.jar</local><!--本地要上传至服务器的文件,可以是相对地址-->
                    <remote>/home</remote><!--服务器目录-->
                </upload>
            </uploads>
            <commands>
                <command>/home/restart.sh</command><!--上传完完文件后要处理的命令,可以多个-->
                <command>/home/restart.sh2</command>
            </commands>

            <!--服务器应用启动后的验证接口,用于验证最新的代码是否更新成功,这个接口得自己定义,轮询验证直到成功-->
            <verify requestCount="51" timeDelay="20000" timeGap="2000"><!--requestCount:接口访问次数,默认50,timeDelay:
            服务器命令执行完后多长时间开始启动验证接口(单位毫秒,默认10000),timeGap: 轮询时间间隔(单位毫秒,默认1000) -->
                <httpapi method="get" url="http://xxx/app/info"/><!--method: http 请求方法;url:http 接口 url-->
                
                <httpapi method="post" url="http://xxx/test/testPost">
                    <param key="aaa">000</param><!--post 参数 键值-->
                    <param key="bbb">111</param>
                </httpapi>
            </verify>

        </server>

        <server>
            <host>192.168.0.2</host>
            <userName>root</userName>
            <password>123456</password>
            <uploads>
                <upload>
                    <local>C:\test.jar</local>
                    <remote>/home</remote>
                </upload>
                <upload>
                    <local>C:\test2.jar</local>
                    <remote>/home</remote>
                </upload>
            </uploads>
            <commands>
                <command>/home/restart.sh</command>
                <command>/home/restart2.sh</command>
            </commands>

            <verify requestCount="51" timeDelay="20000" timeGap="2000">
                <httpapi method="get" url="http://xxx/app/info"/>

            </verify>

        </server>

    </servers>

</config>

  • 一键调用命令

java -jar JavaAutoDeployClient-1.1.jar config.xml


  • 上传war包config的例子
<?xml version="1.0" encoding="utf-8" ?>
<!--use ssh user password-->
<config>
    <threadPoolSize default="5">3</threadPoolSize>
    <servers>
        <server>
            <host>192.168.0.1</host>
            <userName>root</userName>
            <password>123456</password>
            <uploads>
                <upload>
                    <local>C:\javawebdeploy.war</local>
                    <remote>/coder/tomcat/apache-tomcat-7.0.55/webapps</remote>
                </upload>
            </uploads>
            <commands>
                    <command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh</command>
					<command>rm -rf /coder/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy</command>
					<command>sh /coder/tomcat/apache-tomcat-7.0.55/bin/startup.sh</command>
            </commands>
             <verify requestCount="51" timeDelay="20000" timeGap="2000">
               <httpapi method="get" url="http://xxx/app/info"/>
            </verify>
        </server>
    </servers>
</config>



  • 用maven打包的命令例子

autodeploy.bat

call maven-package.bat
pause
java -jar JavaAutoDeployClient-1.1.jar config.xml

maven-package.bat

mvn clean package -Pprod

用代码自定义 加入lib JavaAutoDeployClient-1.1.jar

  • 代码例子
    public static void main(String args[]){


        Map<String,String> uploadMap = new HashMap<String,String>();
        uploadMap.put("c:\\test.jar","/home");

        List<String> commands = new ArrayList<String>();
        commands.add("/home/restart.sh");

        List<HttpMethod> apis =new ArrayList<HttpMethod>();
        HttpGet httpGet = new HttpGet();
        httpGet.setUrl("http://xxxx/app/info");
        apis.add(httpGet);

        HttpPost httpPost = new HttpPost();
        httpPost.setUrl("http://xxxx/app/info");
        Map<String,String> params = new HashMap<String,String>();
        params.put("key","value");
        httpPost.setParams(params);

        apis.add(httpPost);

        AutoDeploy autoDeploy = AutoDeplyBuilder.create().
                setServerInfo("192.168.0.1","root","123456").
                setUploadFileInfo(uploadMap).
                setCommands(commands).
                setVerifyApi(apis).
                build();

        try {
            autoDeploy.start(new AutoDeploy.AutoDeployListener() {
                @Override
                public void finish() {

                }

                @Override
                public void verifySucess(List<String> log) {

                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }

    }


© 著作权归作者所有

共有 人打赏支持
yale8848
粉丝 12
博文 89
码字总数 21864
作品 0
西安
程序员
Jenkins 教程(一)实现自动化打包及邮件通知

个人不喜欢装腔作势一堆专业术语放上去,让大多数人看不懂来提升逼格(所谓的专家),所以我简单的介绍jenkins是干啥的。本文使用jenkins,就是让它把git仓库里的东西取出来,然后在jenkins容器...

FantJ ⋅ 05/26 ⋅ 0

Spring Boot整合模板引擎jsp

jsp也算是一种模板引擎吧。整合jsp前,先说一下运行SpringBoot项目的几种方式 1. 运行SpringBoot项目的几种方式 1.1 使用内嵌Tomcat运行项目 在IDE中右键运行启动类,也就是直接直接运行App...

yysue ⋅ 06/15 ⋅ 0

快速构建docker镜像:maven插件

越来越多的项目开始了docker容器化部署的进化,在容器化之前我们部署一个项目,可能由源代码产出一个jar或者war即可直接发布了,启动之后是一个java进程;容器化之后,由源代码产出的是一个d...

rabbitGYK ⋅ 04/15 ⋅ 0

在eclipse中配置maven

官网下载maven插件(http://maven.apache.org/download.cgi) 现在完解压如图所示: 文件目录介绍: Bin:二进制文件 Boot:引导,启动 Conf:配置文件 Lib:jar包 README.txt:读我 2.修改配置文件...

懿宁19931210 ⋅ 05/15 ⋅ 0

J2EE进阶(二十三)jar、war、ear包的区别

J2EE进阶(二十三)jar、war、ear包的区别 以最终客户的角度来看,.jar文件就是一种封装,他们不需要知道.jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果。...

sunhuaqiang1 ⋅ 05/05 ⋅ 0

在eclipse使用jboss6.1+部署项目后war包中无.class文件,有包路径和配置文件 [

在eclipse中导入项目(一个在其他环境可以正常部署的项目)之后,直接使用Jboss6.1部署,可以部署成功,一切正常。 在project->clean...清除缓存之后重新部署,服务器上的war包中就没有.clas...

神奇巴士 ⋅ 06/17 ⋅ 0

Jenkins集成java非maven/ant项目的打包思路

打包的思路如下: 1、使用javac命令对代码进行编译,比如递归编译整个项目的java代码。(注意:需要一一对应引用的jar包) 2、输出并整理war包的文件夹结构目录,参考:http://www.cnblogs....

easonjim ⋅ 2017/03/09 ⋅ 0

Jenkins安装及使用(CentOS6.5)

前置条件 安装jdk1.7或以上版本 安装git 安装maven 安装 添加Jenkins库到yum库,Jenkins将从这里下载安装。 1 2 3 4 安装成功后Jenkins将作为一个守护进程随系统启动 系统会创建一个“jenki...

cwftalus ⋅ 04/20 ⋅ 0

6.1 Java vs php 优缺点、适用类型

1、上手难度比较 php易学易懂,非技术的人,稍稍学习,可以上手,环境搭建用LAMP/WAMP一键安装包,常见开发工具,phpstorm。 Java则要求理解,Java语法和核心架构(jar包)以及JVM,环境配置也...

产品经理的技术课堂 ⋅ 05/20 ⋅ 0

关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题

在部署微信公众号项目时,在本地TOMCAT测试通过后部署到WEBLOGIC上。抛出了weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection这样的错误。这段...

哥本哈根的小哥 ⋅ 05/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 28分钟前 ⋅ 0

Java学习路径及练手项目合集

Java学习路径及练手项目合集

颖伙虫 ⋅ 43分钟前 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

MVC——统一报文格式的异常处理响应

在我们写controller层的时候,常常会有这样的困惑,如果需要返回一个数据是,可能为了统一回去构造一个类似下列的数据格式: { status:true, msg:"保存成功!", data:[]} 而且在写...

alexzhu592 ⋅ 昨天 ⋅ 0

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。 如果手机本身...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部