{"id":15700978,"url":"https://github.com/yale8848/javaautodeployclient","last_synced_at":"2025-05-12T15:25:18.473Z","repository":{"id":92882710,"uuid":"76823196","full_name":"yale8848/JavaAutoDeployClient","owner":"yale8848","description":"java auto deploy","archived":false,"fork":false,"pushed_at":"2017-01-03T07:05:39.000Z","size":708,"stargazers_count":6,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-12T15:24:51.477Z","etag":null,"topics":["autodeploy","deploy","java"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yale8848.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-12-19T03:02:30.000Z","updated_at":"2018-04-11T02:33:21.000Z","dependencies_parsed_at":"2023-03-16T06:00:14.671Z","dependency_job_id":null,"html_url":"https://github.com/yale8848/JavaAutoDeployClient","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yale8848%2FJavaAutoDeployClient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yale8848%2FJavaAutoDeployClient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yale8848%2FJavaAutoDeployClient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yale8848%2FJavaAutoDeployClient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yale8848","download_url":"https://codeload.github.com/yale8848/JavaAutoDeployClient/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253764467,"owners_count":21960585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autodeploy","deploy","java"],"created_at":"2024-10-03T19:57:28.157Z","updated_at":"2025-05-12T15:25:18.445Z","avatar_url":"https://github.com/yale8848.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JavaAutoDeployClient\n\njava一键自动部署war包，jar包工具\n\n\ndowload [JavaAutoDeployClient-1.3.jar](https://github.com/yale8848/JavaAutoDeployClient/blob/master/release/1.3/JavaAutoDeployClient-1.3.jar?raw=true)\n\n# 用法\n\n### 直接用批处理\n\n- 创建 config.xml\n\n```\n\n\u003c?xml version=\"1.0\" encoding=\"utf-8\" ?\u003e\n\u003cconfig\u003e\n    \u003cthreadPoolSize default=\"5\"\u003e3\u003c/threadPoolSize\u003e\u003c!--线程池大小，如果上传服务器多的话可以调大，默认5个线程--\u003e\n    \u003cservers\u003e\n        \u003cserver\u003e\n            \u003chost\u003e192.168.0.1,192.168.0.3\u003c/host\u003e\u003c!--远程服务器地址,多个用逗号隔开，要求其它配置必须一样--\u003e\n            \u003cuserName\u003eroot\u003c/userName\u003e\u003c!--ssh登录名称--\u003e\n            \u003cpassword\u003e123456\u003c/password\u003e\u003c!--ssh登录密码--\u003e\n            \u003cuploads\u003e\n                \u003cupload\u003e\n                    \u003clocal\u003eC:\\test.jar\u003c/local\u003e\u003c!--本地要上传至服务器的文件或目录--\u003e\n                    \u003cremote\u003e/home\u003c/remote\u003e\u003c!--服务器目录--\u003e\n                \u003c/upload\u003e\n            \u003c/uploads\u003e\n            \u003ccommands\u003e\n                \u003ccommand\u003e/home/restart.sh\u003c/command\u003e\u003c!--上传完完文件后要处理的命令，可以多个--\u003e\n                \u003ccommand\u003e/home/restart.sh2\u003c/command\u003e\n            \u003c/commands\u003e\n\n            \u003c!--服务器应用启动后的验证接口，用于验证最新的代码是否更新成功，这个接口得自己定义，轮询验证直到成功--\u003e\n            \u003cverify requestCount=\"51\" timeDelay=\"20000\" timeGap=\"2000\"\u003e\u003c!--requestCount：接口访问次数，默认50，timeDelay:\n            服务器命令执行完后多长时间开始启动验证接口(单位毫秒，默认10000)，timeGap: 轮询时间间隔（单位毫秒，默认1000） --\u003e\n                \u003chttpapi method=\"get\" url=\"http://xxx/app/info\"/\u003e\u003c!--method: http 请求方法；url：http 接口 url--\u003e\n                \n                \u003chttpapi method=\"post\" url=\"http://xxx/test/testPost\"\u003e\n                    \u003cparam key=\"aaa\"\u003e000\u003c/param\u003e\u003c!--post 参数 键值--\u003e\n                    \u003cparam key=\"bbb\"\u003e111\u003c/param\u003e\n                \u003c/httpapi\u003e\n            \u003c/verify\u003e\n\n        \u003c/server\u003e\n\n        \u003cserver\u003e\n            \u003chost\u003e192.168.0.2\u003c/host\u003e\n            \u003cuserName\u003eroot\u003c/userName\u003e\n            \u003cpassword\u003e123456\u003c/password\u003e\n            \u003cuploads\u003e\n                \u003cupload\u003e\n                    \u003clocal\u003eC:\\test.jar\u003c/local\u003e\n                    \u003cremote\u003e/home\u003c/remote\u003e\n                \u003c/upload\u003e\n                \u003cupload\u003e\n                    \u003clocal\u003eC:\\test2.jar\u003c/local\u003e\n                    \u003cremote\u003e/home\u003c/remote\u003e\n                \u003c/upload\u003e\n            \u003c/uploads\u003e\n            \u003ccommands\u003e\n                \u003ccommand\u003e/home/restart.sh\u003c/command\u003e\n                \u003ccommand\u003e/home/restart2.sh\u003c/command\u003e\n            \u003c/commands\u003e\n\n            \u003cverify requestCount=\"51\" timeDelay=\"20000\" timeGap=\"2000\"\u003e\n                \u003chttpapi method=\"get\" url=\"http://xxx/app/info\"/\u003e\n\n            \u003c/verify\u003e\n\n        \u003c/server\u003e\n\n    \u003c/servers\u003e\n\n\u003c/config\u003e\n\n```\n\n- 一键调用命令\n\n```\n\njava -jar JavaAutoDeployClient-1.1.jar config.xml\n\n\n```\n\n- 上传war包config的例子\n\n```\n\u003c?xml version=\"1.0\" encoding=\"utf-8\" ?\u003e\n\u003c!--use ssh user password--\u003e\n\u003cconfig\u003e\n    \u003cthreadPoolSize default=\"5\"\u003e3\u003c/threadPoolSize\u003e\n    \u003cservers\u003e\n        \u003cserver\u003e\n            \u003chost\u003e192.168.0.1\u003c/host\u003e\n            \u003cuserName\u003eroot\u003c/userName\u003e\n            \u003cpassword\u003e123456\u003c/password\u003e\n            \u003cuploads\u003e\n                \u003cupload\u003e\n                    \u003clocal\u003eC:\\javawebdeploy.war\u003c/local\u003e\n                    \u003cremote\u003e/coder/tomcat/apache-tomcat-7.0.55/webapps\u003c/remote\u003e\n                \u003c/upload\u003e\n            \u003c/uploads\u003e\n            \u003ccommands\u003e\n                    \u003ccommand\u003esh /coder/tomcat/apache-tomcat-7.0.55/bin/shutdown.sh\u003c/command\u003e\n\t\t\t\t\t\u003ccommand\u003erm -rf /coder/tomcat/apache-tomcat-7.0.55/webapps/javawebdeploy\u003c/command\u003e\n\t\t\t\t\t\u003ccommand\u003esh /coder/tomcat/apache-tomcat-7.0.55/bin/startup.sh\u003c/command\u003e\n            \u003c/commands\u003e\n             \u003cverify requestCount=\"51\" timeDelay=\"20000\" timeGap=\"2000\"\u003e\n               \u003chttpapi method=\"get\" url=\"http://xxx/app/info\"/\u003e\n            \u003c/verify\u003e\n        \u003c/server\u003e\n    \u003c/servers\u003e\n\u003c/config\u003e\n\n\n\n```\n\n- 用maven打包的命令例子\n\n\nautodeploy.bat\n\n```\ncall maven-package.bat\npause\njava -jar JavaAutoDeployClient-1.1.jar config.xml\n\n```\n\nmaven-package.bat\n\n```\nmvn clean package -Pprod\n\n```\n\n\n### 用代码自定义 加入lib JavaAutoDeployClient-1.1.jar\n\n- 代码例子\n\n```\n    public static void main(String args[]){\n\n\n        Map\u003cString,String\u003e uploadMap = new HashMap\u003cString,String\u003e();\n        uploadMap.put(\"c:\\\\test.jar\",\"/home\");\n\n        List\u003cString\u003e commands = new ArrayList\u003cString\u003e();\n        commands.add(\"/home/restart.sh\");\n\n        List\u003cHttpMethod\u003e apis =new ArrayList\u003cHttpMethod\u003e();\n        HttpGet httpGet = new HttpGet();\n        httpGet.setUrl(\"http://xxxx/app/info\");\n        apis.add(httpGet);\n\n        HttpPost httpPost = new HttpPost();\n        httpPost.setUrl(\"http://xxxx/app/info\");\n        Map\u003cString,String\u003e params = new HashMap\u003cString,String\u003e();\n        params.put(\"key\",\"value\");\n        httpPost.setParams(params);\n\n        apis.add(httpPost);\n\n        AutoDeploy autoDeploy = AutoDeplyBuilder.create().\n                setServerInfo(\"192.168.0.1\",\"root\",\"123456\").\n                setUploadFileInfo(uploadMap).\n                setCommands(commands).\n                setVerifyApi(apis).\n                build();\n\n        try {\n            autoDeploy.start(new AutoDeploy.AutoDeployListener() {\n                @Override\n                public void finish() {\n\n                }\n\n                @Override\n                public void verifySucess(List\u003cString\u003e log) {\n\n                }\n            });\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n\n    }\n\n\n```\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyale8848%2Fjavaautodeployclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyale8848%2Fjavaautodeployclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyale8848%2Fjavaautodeployclient/lists"}