Gradle Plugin

goSync

高效的 Gradle 部署插件,智能增量同步,让部署更快捷

Plugin ID
id("dev.coolrequest.gosync") version "1.1"

核心特性

智能同步

使用 MD5 哈希检测文件变化,远程文件与本地匹配时跳过上传,大幅节省部署时间和带宽。

依赖管理

自动提取所有运行时依赖,确保远程 lib 目录与本地同步,无需手动管理依赖文件。

JumpServer 支持

原生支持 JumpServer(堡垒机)环境,自动执行交互式命令序列导航到目标服务器。

SSH/SFTP 集成

基于安全协议的可靠文件传输,支持标准 SSH 连接和堡垒机环境。

工作原理

1

构建后执行

插件在 Gradle jar 任务完成后自动触发

2

依赖提取

识别项目的所有运行时依赖

3

MD5 校验

计算本地和远程文件的 MD5 哈希值进行对比

4

选择性上传

仅上传新增或变更的文件,MD5 匹配则跳过

配置说明

build.gradle
goSync {
    // Connection Settings
    serverType = "jumpserver" // Options: "jumpserver" or "simple"
    serverAddress = "192.168.1.100"
    port = 2222
    userName = "your_username"
    userPass = "your_password"

    // JumpServer Specific
    afterConnectedCommand = "p\r25\r2\r"

    // Remote Paths
    libDirectory = "/your-libs"
    mainJarDirectory = "/your-jar"
}

参数详情

参数类型必填说明
serverTypeStringYes定义连接模式。"simple": 标准SSH连接;"jumpserver": 通过堡垒机连接,需要导航命令。
serverAddressStringYesJumpServer 或目标主机的 IP 地址或域名。
portIntegerYesSSH端口。标准SSH通常为22,JumpServer通常为2222。
userNameStringYes认证用户名。
userPassStringYes认证密码。
afterConnectedCommandStringNoJumpServer专用。表示到达目标机器所需的键盘输入字符串。使用 \r 表示"回车"键。例如:p\r25\r(搜索"p",然后选择第25项)。
libDirectoryStringYes远程服务器上存储项目依赖库(.jar文件)的绝对路径。
mainJarDirectoryStringYes远程服务器上存储项目主输出JAR的绝对路径。

使用方法

手动执行

./gradlew goSync

在命令行中手动触发同步任务