{"id":27736929,"url":"https://github.com/zidoshare/auto-deploy","last_synced_at":"2025-06-15T07:38:15.910Z","repository":{"id":105162245,"uuid":"214400907","full_name":"zidoshare/auto-deploy","owner":"zidoshare","description":"使用rust编写的自用java CD工具","archived":false,"fork":false,"pushed_at":"2020-10-13T17:22:42.000Z","size":48,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-28T14:47:25.362Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","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/zidoshare.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,"zenodo":null}},"created_at":"2019-10-11T09:49:20.000Z","updated_at":"2023-03-17T12:19:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"3f3bb1b0-f247-4ff0-86f4-1aeaada25d96","html_url":"https://github.com/zidoshare/auto-deploy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zidoshare/auto-deploy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zidoshare%2Fauto-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zidoshare%2Fauto-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zidoshare%2Fauto-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zidoshare%2Fauto-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zidoshare","download_url":"https://codeload.github.com/zidoshare/auto-deploy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zidoshare%2Fauto-deploy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259940968,"owners_count":22935290,"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":[],"created_at":"2025-04-28T14:34:17.021Z","updated_at":"2025-06-15T07:38:15.900Z","avatar_url":"https://github.com/zidoshare.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# auto-deploy\n[![Build Status](https://travis-ci.com/zidoshare/auto-deploy.svg?branch=master)](https://travis-ci.com/zidoshare/auto-deploy)\n\u003e java maven 项目服务器构建部署工具，适合小型单机项目，约定优于配置\n\n尽量不需要安装其他工具，内置git\n\n# 工作流程\n\n1. 开发者根据环境提交到git分支[正式环境：online,测试环境：test]，如有特殊处理的依赖，可以修改[test.config/prod.config]配置文件中的dependencies项。\n2. 部署时开发者登录服务器，执行正式环境/测试环境部署工具，每个项目需要单独提供参数 `projectName`，可提供多个项目名[项目名为git线上项目名]，多个项目名空格隔开。不填写项目名报错。\n3. 部署工具拉取线上对应分支\n4. 部署工具根据环境校验并切换配置文件\n5. 部署工具执行maven打包（默认跳过java测试，默认打包名为前面提供的项目名而不是pom定义的打包项目名），打包时默认不输出打包信息，报错时输出报错信息并停止部署\n6. 部署工具将打包文件提交到服务器对应目录[正式/测试不同服务器]，并备份原jar包\n7. 部署工具自动部署项目，监控项目启动，当出现报错时，自动回滚项目(仅针对部署时的导致部署失败的错误)\n\n## 关于多模块项目\n\n`projectName` 需要包含根目录及启动目录，例如：`parent/child`\n\n### 特征\n\n* 自动寻找项目名称，不用填写（必须保证在项目路径下），原理是获取git的origin分支url，截取url(如果url包含.git后缀，也会忽略掉这个后缀)\n\n* 自动找当前git分支，但是最好不要在[test/online]发布分支开发，因为发布分支的代码更改会被强制覆盖。\n\n* 如果当前分支代码有更改但未提交，自动提示需要填写commit信息，并且必须填写，否则停止部署\n\n* 自动输入密码连接服务器执行发布流程\n\n## 打包条件\n\n* 项目目录需符合以下目录结构(多模块项目保持启动模块拥有此结构即可)\n\n```code\n|-root\n|  |--src\n|  |   |--main\n|  |   |   |--resources\n|  |   |   |     |--application.properties/yml [总控配置文件，可选]\n|  |   |   |     |--application-prod.properties/yml [正式环境配置文件,必选]\n|  |   |---|-----|--application-test.properties/yml [测试环境配置文件,必选]\n|  |   |   |     |\n|--|--pom.xml\n```\n\n* `application.properties`文件中`spring.profiles.active`会被忽略，由部署工具自动填充替换\n* pom.xml文件中的`finalName`会被忽略，最终构建名会由部署工具自动填充替换\n* pom.xml文件中的依赖，如果被配置文件[config文件中的dependencies项]中的规定的依赖所匹配，将自动根据环境切换，如果未匹配则无改变，配置文件依赖组需严格按照格式编写,数组除分隔元素使用空格外，其他地方不能包含任何空格（元素中不算）。因多行正则的限制，不采用maven中的依赖写法，而是采用gradle依赖写法`\u003cgroupId\u003e:\u003cartifactId\u003e:\u003cversion\u003e`，此处如果未写version仍然会被匹配替换（考虑到依赖管理可能包含版本）,例子:\n\n```shell\ndependencies=(\"com.hnqc:hnqc_common:0.0.1\" \"com.hnqc:hnqc_search:0.0.1\")\n\n```\n\n* 开发者需在服务器上执行打包命令\n* 如想要简单的本地执行可以复制以下命令（linux/mac）:`ssh root@yourServer \"auto-deploy \u003cproject...\u003e\"`。project换成项目名即可。\n\n\n# 开发\n\n前置：\n\nUbuntu环境下：`sudo apt install libssl-dev`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzidoshare%2Fauto-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzidoshare%2Fauto-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzidoshare%2Fauto-deploy/lists"}