{"id":22190970,"url":"https://github.com/zunzhuowei/auto-deploy-maven-plugin","last_synced_at":"2026-05-07T11:34:53.268Z","repository":{"id":37161545,"uuid":"195347108","full_name":"zunzhuowei/auto-deploy-maven-plugin","owner":"zunzhuowei","description":"Cloning code from git repository and deploying it to remote server with local Maven compilation","archived":false,"fork":false,"pushed_at":"2022-12-14T20:35:00.000Z","size":58,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-24T20:43:12.641Z","etag":null,"topics":["auto-deploy","deploy-plugin","git","maven"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zunzhuowei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-05T05:55:22.000Z","updated_at":"2019-07-05T07:17:20.000Z","dependencies_parsed_at":"2023-01-29T00:46:07.729Z","dependency_job_id":null,"html_url":"https://github.com/zunzhuowei/auto-deploy-maven-plugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zunzhuowei/auto-deploy-maven-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zunzhuowei%2Fauto-deploy-maven-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zunzhuowei%2Fauto-deploy-maven-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zunzhuowei%2Fauto-deploy-maven-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zunzhuowei%2Fauto-deploy-maven-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zunzhuowei","download_url":"https://codeload.github.com/zunzhuowei/auto-deploy-maven-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zunzhuowei%2Fauto-deploy-maven-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32735303,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["auto-deploy","deploy-plugin","git","maven"],"created_at":"2024-12-02T12:13:35.799Z","updated_at":"2026-05-07T11:34:53.248Z","avatar_url":"https://github.com/zunzhuowei.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## auto-deploy-maven-plugin\n该项目是一个自动化部署 `java` 项目到远程服务器的 `maven` 插件\n\n## 快速使用\n1. 克隆项目代码到本地\n2. `cd` 到 `plugins` 目录，执行 `mvn clean install -DskipTests`\n3. `cd` 到 `deploy` 目录，进入到 `resources/happy_beard/acti/dev/` 目录,修改 `deploy-happy_beard-acti-dev.yml` 配置文件\n4. 完成 `yml` 配置后， `cd` 到 `deploy` 目录， `mvn clean package -DskipTests`, 即可将项目部署到远程服务器中\n\n参考如下，根据个人需求修改配置（详细模板参考 `plugins` 中的 `deploy-version-template.yml` ）：\n```yaml\ndeploy:\n  mavenHome: \"D://soft/apache-maven-3.2.1\"                   # 配置 maven home 目录\n  gitConfig:\n    gitDirectory: \"E://aa\"                                    # 配置 clone 下来的代码存放的位置\n    gitUri: \"git@github.com:zunzhuowei/zhuozun.git\"              # 配置远程仓库地址\n    gitRemote: \"master\"                                       # 配置 git 分支\n    gitPassword: \"\"                             # git 仓库密码，如果已经是 ssh 免密登录了，则为空\n    gitUsername: \"\"                             # git 仓库用户名，如果已经是 ssh 免密登录了，则为空\n\n  # 执行的 maven 指令集；\n  pomGoals:\n    -\n      mavenPomxmlPath: \"E://aa/pom.xml\"                       # 执行指令的 pom.xml 的地址\n      mavenGoals: \"clean package -DskipTest=true\"                      # 执行的指令\n\n  # 本地替换配置文件集列表\n  moveFile2Dirs:\n    -\n      filePathName: \"D://test/yml/bootstrap.yml\"                 #  配置文件的地址\n      destinationDir: \"E://aa/zhuozun-gateway-server/src/main/resources/\"                   #  移动配置文件的目的地\n\n  # 远程 linux 服务器配置列表\n  servers:\n    -\n      id: \"server1\"                                     # 服务器 id 应当唯一\n      host: \"192.168.1.188\"                                   # 服务器 ip\n      port:  \"22\"                                  #  服务器 端口\n      userName: \"user_01\"                               #  服务器用户名\n      passWord: \"xxxxxxxxxxxxxxxx\"                               # 服务器密码\n\n  # 备份\n  backups:\n    -\n      serverId: server1                                 # 配置的服务器 id\n      backupCfgs:\n        -\n          remoteSrcFilePath: /home/user_01/nohup.out                  #  远程源文件目录；\n          remoteBackupDestPaths:                # 远程服务备份目录；应该为列表，支持备份到多个目录\n            - /home/user_01/qs/\n\n          localPaths:                            # 本地备份目录；应该为列表，支持备份到多个目录\n            - D://aa/ss/\n\n  # 配置文件替换\n  config:\n    enable: remote                                  # 配置文件替换类型；remote/local；枚举类\n    # 远程配置文件替换配置\n    remote:\n      remoteServers:\n        -\n          host: 192.168.1.188                                   # 配置文件服务器 ip\n          port: 22                                   #  配置文件服务器 端口\n          userName: user_01                                #  配置文件服务器用户名\n          passWord: xxxxxxxxxxxxxxxx                               # 配置文件服务器密码\n          configCfgs:                                # 配置详情列表\n            -\n              remoteCfgFilePath: /home/user_01/qs/bootstrap.yml                      # 远程配置文件服务器的配置文件目录\n              localDestPath: E://aa/zhuozun-gateway-server/src/main/resources/                         # 存放获取到的配置文件的本地目录\n            -\n              remoteCfgFilePath: /home/user_01/qs/bootstrap222.yml                     # 远程配置文件服务器的配置文件目录\n              localDestPath: E://aa/zhuozun-gateway-server/src/main/resources/                          # 存放获取到的配置文件的本地目录\n\n    # 本地配置文件替换配置\n    local:\n      localCfgs:\n        -\n          filePathName: \"D://test/yml/bootstrap.yml\"                 #  配置文件的地址\n          destinationDir: \"E://aa/zhuozun-gateway-server/src/main/resources/\"                    #  移动配置文件的目的地\n\n  # 上传打好的包\n  uploadPackages:\n    -\n      serverId: server1                                          # 远程服务器id\n      localPackagePath: E://aa/zhuozun-gateway-server/target/zhuozun-gateway-server.jar                                      #  要上传应用包所在本地目录地址\n      remoteDest: /home/user_01/                                        # 远程服务器目录\n      packageName: gateway.jar                                      # 上传后，在远程服务器中的命名\n\n  # 远程服务器执行 linux 指令集，完成部署任务\n  deployInstructionSet:\n    -\n      serverId: server1                                          # 远程服务器id\n      instructions:                                       # 执行的指令集合\n        - \"cd /home/user_01/\"\n        - \"mkdir logs\"\n        - \"nohup java -jar gateway.jar \u003e ./logs/out.log 2\u003e\u00261 \u0026\"\n        - ps\n```\n\n## 详细配置介绍\n\n* 激活的部署配置文件列表由 `\u003capplication\u003e` 标签中 `\u003cserviceName\u003e` `\u003cappName\u003e` `\u003cenvironment\u003e` 的值以及\n拼接字符串 `\u003cdelimiter\u003e` 拼接。\n如： `\u003cactive\u003ehappy_beard-acti-dev\u003c/active\u003e`，为激活如下app配置\n```xml\n\u003capplication\u003e\n    \u003cserviceName\u003ehappy_beard\u003c/serviceName\u003e\n    \u003cappName\u003eapp\u003c/appName\u003e\n    \u003cenvironment\u003edev\u003c/environment\u003e\n\u003c/application\u003e\n```\n\n* 配置文件所在目录也由 `\u003capplication\u003e` 标签中 `\u003cserviceName\u003e` `\u003cappName\u003e` `\u003cenvironment\u003e` 的值构成\n如 `\u003capplication\u003e` 中配置如下：\n```xml\n\u003capplication\u003e\n    \u003cserviceName\u003ehappy_beard\u003c/serviceName\u003e\n    \u003cappName\u003eapp\u003c/appName\u003e\n    \u003cenvironment\u003edev\u003c/environment\u003e\n\u003c/application\u003e\n```\n则配置文件所在目录为 `resources/happy_beard/acti/dev/` 中，文件名称为 `deploy-happy_beard-acti-dev.yml`\n\n```xml\n \u003cplugin\u003e\n    \u003cgroupId\u003ecom.game.qs.plugin\u003c/groupId\u003e\n    \u003cartifactId\u003eplugins\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0\u003c/version\u003e\n    \u003cexecutions\u003e\n        \u003cexecution\u003e\n            \u003cid\u003emyid\u003c/id\u003e\n            \u003c!-- 在打包时候触发 --\u003e\n            \u003cphase\u003epackage\u003c/phase\u003e\n            \u003cgoals\u003e\n                \u003c!-- 目标插件为 mojo = deploy 中 --\u003e\n                \u003cgoal\u003edeploy\u003c/goal\u003e\n            \u003c/goals\u003e\n            \u003cconfiguration\u003e\n                \u003cactives\u003e\n                    \u003c!--\n                    激活的部署列表，列表命名规则\n                      \u003capplication\u003e 中 serviceName，appName，environment，拼接。\n                      拼接字符串为 \u003cdelimiter\u003e 定义；\n                      \n                    如：happy_beard-acti-dev，为激活如下app配置\n                      \u003capplication\u003e\n                        \u003cserviceName\u003ehappy_beard\u003c/serviceName\u003e\n                        \u003cappName\u003eapp\u003c/appName\u003e\n                        \u003cenvironment\u003edev\u003c/environment\u003e\n                    \u003c/application\u003e\n                     --\u003e\n                    \u003cactive\u003ehappy_beard-acti-dev\u003c/active\u003e\n                    \u003c!--\u003cactive\u003ehappy_beard-acti-test\u003c/active\u003e --\u003e\n                \u003c/actives\u003e\n    \n                \u003c!-- 是否为还原部署，默认:false 为更新部署 --\u003e\n                \u003cisBackup\u003efalse\u003c/isBackup\u003e\n                \u003c!-- yml 配置文件的前缀,默认: 'deploy-' --\u003e\n                \u003cdeployYmlPrefix\u003edeploy-\u003c/deployYmlPrefix\u003e\n                \u003c!-- yml 配置文件命名分隔符，默认：- ;如：deploy-happy_beard-acti-prod.yml --\u003e\n                \u003cdelimiter\u003e-\u003c/delimiter\u003e\n    \n                \u003capplications\u003e\n                    \u003capplication\u003e\n                        \u003c!-- 业务服务名称 --\u003e\n                        \u003cserviceName\u003ehappy_beard\u003c/serviceName\u003e\n                        \u003c!-- 应用名称 --\u003e\n                        \u003cappName\u003eapp\u003c/appName\u003e\n                        \u003c!-- 部署环境 --\u003e\n                        \u003cenvironment\u003edev\u003c/environment\u003e\n                    \u003c/application\u003e\n                    \u003capplication\u003e\n                        \u003cserviceName\u003ehappy_beard\u003c/serviceName\u003e\n                        \u003cappName\u003eapp\u003c/appName\u003e\n                        \u003cenvironment\u003etest\u003c/environment\u003e\n                    \u003c/application\u003e\n                    \u003capplication\u003e\n                        \u003cserviceName\u003ehappy_beard\u003c/serviceName\u003e\n                        \u003cappName\u003eacti\u003c/appName\u003e\n                        \u003cenvironment\u003edev\u003c/environment\u003e\n                    \u003c/application\u003e\n                    \u003capplication\u003e\n                        \u003cserviceName\u003ehappy_beard\u003c/serviceName\u003e\n                        \u003cappName\u003eacti\u003c/appName\u003e\n                        \u003cenvironment\u003eprod\u003c/environment\u003e\n                    \u003c/application\u003e\n                \u003c/applications\u003e\n            \u003c/configuration\u003e\n        \u003c/execution\u003e\n    \u003c/executions\u003e\n    \u003c/plugin\u003e\n```\n\n## 插件打包流程\n\n1. 备份远程服务器中正在执行的应用\n\n2. 拉取 `git` 指定分支的代码\n\n3. 替换 `git` 代码中的配置文件\n\n4. 执行 `maven` 指令打包项目\n\n5. 上传打好的包到远程服务器\n\n6. 部署上传的包到远程服务器中\n\n7. 回滚备份的原来的应用\n\n## 部署执行流程\n\n1. 备份远程正在执行的 `war`、`jar` 包、或者配置文件等到指定目录（远程服务器目录或者本机目录）\n\n2. 根据配置好的 `git` 远程仓库地址 `clone` 指定分支的代码到本地目录；\n\n3. 替换应用配置文件\n\n    3.1  本地配置文件替换到指定应用目录中。\n    \n    3.2  远程 `linux` 服务器配置文件下载下来替换到指定应用目录中 \n    \n4. 执行 `maven` 配置的打包指令\n\n5. 上传打好的包（`war`、`jar`）到配置的远程的全部服务器；\n\n6. 根据配置的命令，`ssh` 执行命令给远程服务器，使其做相应的业务\n\n7. 处理部署完成之后的相应事项。\n\n## 回滚应用执行流程\n\n1. 找到部署时的备份的应用包\n\n2. 如果为远程服务器备份，则直接远程执行 `linux` 指令，完成备份还原操作；如果为本地备份，则需先上传应用包，再执行还原指令\n\n3. 处理还原完成后的相应事项。\n\n## 详细配置模板\n```yaml\ndeploy:\n  #mavenHome: \"E://maven/apache-maven-3.5.4\"                   # 配置 maven home 目录\n  mavenHome: \"D://soft/apache-maven-3.2.1\"                   # 配置 maven home 目录\n  gitConfig:\n    gitDirectory: \"E://aa\"                                    # 配置 clone 下来的代码存放的位置\n    gitUri: \"git@github.com:zunzhuowei/base.git\"              # 配置远程仓库地址\n    gitRemote: \"master\"                                       # 配置 git 分支\n    gitPassword: \"\"                             # git 仓库密码，如果已经是 ssh 免密登录了，则为空\n    gitUsername: \"\"                             # git 仓库用户名，如果已经是 ssh 免密登录了，则为空\n\n  # 执行的 maven 指令集；\n  pomGoals:\n    -\n      mavenPomxmlPath: \"E://aa/pom.xml\"                       # 执行指令的 pom.xml 的地址\n      mavenGoals: \"clean package -DskipTest=true\"                      # 执行的指令\n  #    -\n  #      mavenPomxmlPath: \"E://aa/gateway/pom.xml\"                # 执行指令的 pom.xml 的地址\n  #      mavenGoals: \"clean package -DskipTest=true\"              # 执行的指令\n\n  # 本地替换配置文件集列表\n  moveFile2Dirs:\n    -\n      filePathName: \"D://test/yml/bootstrap.yml\"                 #  配置文件的地址\n      destinationDir: \"E://aa/gateway/src/main/resources/\"                   #  移动配置文件的目的地\n\n  #    -\n  #      filePathName: \"E://aa/pom.xml\"                 #  配置文件的地址\n  #      destinationDir: \"E://haha2/\"                   #  移动配置文件的目的地\n\n  # 远程 linux 服务器配置列表\n  servers:\n    -\n      id: \"server1\"                                     # 服务器 id 应当唯一\n      host: \"192.168.1.188\"                                   # 服务器 ip\n      port:  \"22\"                                  #  服务器 端口\n      userName: \"user_01\"                               #  服务器用户名\n      passWord: \"xxxxxxxxxxxxxxxx\"                               # 服务器密码\n  #    -\n  #      id: server1                                     # 服务器 id 应当唯一\n  #      host: 192.168.1.188                                   # 服务器 ip\n  #      port: 22                                   #  服务器 端口\n  #      userName: user_01                               #  服务器用户名\n  #      passWord: xxxxxxxxxxxxxxxx                               # 服务器密码\n\n  # 备份\n  backups:\n    -\n      serverId: server1                                 # 配置的服务器 id\n      backupCfgs:\n        -\n          remoteSrcFilePath: /home/user_01/nohup.out                  #  远程源文件目录；\n          remoteBackupDestPaths:                # 远程服务备份目录；应该为列表，支持备份到多个目录\n            - /home/user_01/qs/\n\n          localPaths:                            # 本地备份目录；应该为列表，支持备份到多个目录\n            - D://aa/ss/\n  #        -\n  #          remoteSrcFilePath: /wwwroot1/java/tomcat/webapp/app.war                  #  远程源文件目录；\n  #          remoteBackupDestPaths:                # 远程服务备份目录；应该为列表，支持备份到多个目录\n  #            - /wwwroot1/java/backs/app/\n  #            - /wwwroot1/java/backs/app2/\n  #          localPaths:                             # 本地备份目录；应该为列表，支持备份到多个目录\n  #            - D://aa1/ss/\n  #            - D://aa1/ss2/\n  #    -\n  #      serverId: server2                                 # 配置的服务器 id\n  #      backupCfgs:\n  #        -\n  #          remoteSrcFilePath: /wwwroot2/java/tomcat/webapp/app.war                  #  远程源文件目录；\n  #          remoteBackupDestPaths:                # 远程服务备份目录；应该为列表，支持备份到多个目录\n  #            - /wwwroot2/java/backs/app/\n  #            - /wwwroot2/java/backs/app2/\n  #          localPaths:                             # 本地备份目录；应该为列表，支持备份到多个目录\n  #            - D://aa2/ss/\n  #            - D://aa2/ss2/\n  #        -\n  #          remoteSrcFilePath: /wwwroot22/java/tomcat/webapp/app.war                  #  远程源文件目录；\n  #          remoteBackupDestPaths:                # 远程服务备份目录；应该为列表，支持备份到多个目录\n  #            - /wwwroot22/java/backs/app/\n  #            - /wwwroot22/java/backs/app2/\n  #          localPaths:                             # 本地备份目录；应该为列表，支持备份到多个目录\n  #            - D://aa22/ss/\n  #            - D://aa22/ss2/\n\n  # 配置文件替换\n  config:\n    enable: remote                                  # 配置文件替换类型；remote/local；枚举类\n    # 远程配置文件替换配置\n    remote:\n      remoteServers:\n        -\n          host: 192.168.1.188                                   # 配置文件服务器 ip\n          port: 22                                   #  配置文件服务器 端口\n          userName: user_01                                #  配置文件服务器用户名\n          passWord: xxxxxxxxxxxxxxxx                               # 配置文件服务器密码\n          configCfgs:                                # 配置详情列表\n            -\n              remoteCfgFilePath: /home/user_01/qs/bootstrap.yml                      # 远程配置文件服务器的配置文件目录\n              localDestPath: E://aa/gateway/src/main/resources/                         # 存放获取到的配置文件的本地目录\n            -\n              remoteCfgFilePath: /home/user_01/qs/bootstrap222.yml                     # 远程配置文件服务器的配置文件目录\n              localDestPath: E://aa/gateway/src/main/resources/                          # 存放获取到的配置文件的本地目录\n    #        -\n    #          host: 192.168.1.188                                   # 配置文件服务器 ip\n    #          port: 22                                   #  配置文件服务器 端口\n    #          userName: user_01                                #  配置文件服务器用户名\n    #          passWord: xxxxxxxxxxxxxxxx                               # 配置文件服务器密码\n    #          configCfgs:                                # 配置详情列表\n    #            -\n    #              remoteCfgFilePath: /wwwroot/java/cfgs/jdbc.properties                      # 远程配置文件服务器的配置文件目录\n    #              localDestPath: D://aa/base/deploy/src/main/resources                          # 存放获取到的配置文件的本地目录\n    #            -\n    #              remoteCfgFilePath: /wwwroot/java/cfgs/log4j.properties                      # 远程配置文件服务器的配置文件目录\n    #              localDestPath: D://aa/base/deploy/src/main/resources                          # 存放获取到的配置文件的本地目录\n\n    # 本地配置文件替换配置\n    local:\n      localCfgs:\n        -\n          filePathName: \"D://test/yml/bootstrap.yml\"                 #  配置文件的地址\n          destinationDir: \"E://aa/gateway/src/main/resources/\"                    #  移动配置文件的目的地\n\n  #        -\n  #          filePathName: \"E://aa/pom.xml\"                 #  配置文件的地址\n  #          destinationDir: \"E://haha2/\"                   #  移动配置文件的目的地\n\n  # 上传打好的包\n  uploadPackages:\n    -\n      serverId: server1                                          # 远程服务器id\n      localPackagePath: E://aa/gateway/target/gateway.jar                                      #  要上传应用包所在本地目录地址\n      remoteDest: /home/user_01/                                        # 远程服务器目录\n      packageName: gateway.jar                                      # 上传后，在远程服务器中的命名\n  #    -\n  #      serverId: server2                                          # 远程服务器id\n  #      localPackagePath: D://aa/base/deploy2/target/acti.war                                      #  要上传应用包所在本地目录地址\n  #      remoteDest: /wwwroot/java/deploy/                                         # 远程服务器目录\n  #      packageName: myacti.war                                      # 上传后，在远程服务器中的命名\n\n  # 远程服务器执行 linux 指令集，完成部署任务\n  deployInstructionSet:\n    -\n      serverId: server1                                          # 远程服务器id\n      instructions:                                       # 执行的指令集合\n        - \"cd /home/user_01/\"\n        - \"mkdir logs\"\n        - \"nohup java -jar gateway.jar \u003e ./logs/out.log 2\u003e\u00261 \u0026\"\n        - ps\n  #    -\n  #      serverId: server2                                          # 远程服务器id\n  #      instructions:                                       # 执行的指令集合\n  #        - ls\n  #        - pwd\n  #        - ps\n\n  # 还原部署时备份的应用\n  reductionApps:\n    -\n      serverId: server1                                          # 远程服务器id\n      localFilePath: D://aa/backup/app.war                                      # 备份的文件本地目录地址\n      remoteDestPath: /wwwroot/java/backup/app.war                                      # 备份的文件远程目录地址\n      reductionTempDir: /wwwroot/java/tempdir/                           #还原包临时存放目录\n      instructions:                                       # 执行的指令集合\n        - ls\n        - pwd\n        - ps\n    -\n      serverId: server2                                          # 远程服务器id\n      localFilePath: D://aa/backup/app.war                                      # 备份的文件本地目录地址\n      remoteDestPath:  /wwwroot/java/backup/app.war                                      # 备份的文件远程目录地址\n      reductionTempDir: /wwwroot/java/tempdir/                           #还原包临时存放目录\n      instructions:                                       # 执行的指令集合\n        - ls\n        - pwd\n        - ps\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzunzhuowei%2Fauto-deploy-maven-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzunzhuowei%2Fauto-deploy-maven-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzunzhuowei%2Fauto-deploy-maven-plugin/lists"}