插件开源地址
https://gitee.com/wangbing1991/deployee-maven-plugin.git
http://git.wbsite.xyz/plugin/deployee-maven-plugin.git
一、背景与痛点:传统部署模式的困局
多环节人工干预- 本地打包 → SFTP 上传 → 环境检测 → JDK 安装 → 脚本配置 → 手动启停
环境异构性挑战- 多版本 JDK 依赖问题(如 JDK8/11/17)
工具链适配矛盾- Jenkins 等 CI/CD 工具在微型项目中的资源浪费
二、解决方案选型:Maven 插件的技术突围
开发范式对比- 传统脚本方案:Shell/PowerShell 的平台局限性
技术可行性验证- 跨平台支持:Java 原生实现屏蔽系统差异
核心功能设计- 自包含 JDK 镜像:支持离线环境部署
服务注册自动化:systemd 单元文件生成
配置热加载:外部化配置文件管理
三、实战指南:从代码到服务的蜕变
配置示例xml
<build>
<!-- 项目名称 -->
<finalName>${artifactId}</finalName>
<!-- 默认的主代码目录 -->
<sourceDirectory>src/main/java</sourceDirectory>
<!-- 默认的测试代码目录 -->
<testSourceDirectory>src/test/java</testSourceDirectory>
<plugins>
<!-- 一键部署 -->
<plugin>
<groupId>xyz.wbsite</groupId>
<artifactId>deployee-maven-plugin</artifactId>
<version>latest</version>
<configuration>
<targetPath>${build.directory}</targetPath>
<targetFile>${build.finalName}.${project.packaging}</targetFile>
<servers>
<!-- 服务部署信息 -->
<server>
<!-- 服务名称 -->
<name>something</name>
<!-- 服务器远程地址 -->
<ip>192.168.1.100</ip>
<!-- 服务器远程端口 -->
<port>22</port>
<!-- 服务器登录账户 -->
<username>root</username>
<!-- 服务器登录密码 -->
<password>***</password>
<!-- 部署环境 对应spring.profiles.active-->
<deployActive>test</deployActive>
<!-- 部署路径 -->
<deployPath>/www</deployPath>
<!-- 部署端口 -->
<deployPort>8080</deployPort>
</server>
</servers>
</configuration>
</plugin>
</plugins>
</build>
执行流程bash
# 一键部署命令
mvn clean package deployee:deploy
图形化操作

结果示例
[INFO] ------------------------------------------------------------------------
[INFO] TargetPath **\target**
[INFO] TargetFile case-subsidy.jar
[INFO] Server[10.10.10.11:8081] start deploying
[INFO] server[10.10.10.11] login success.
[INFO] test environment
[INFO] /www/demo
[INFO] jre[case] has been installed
[INFO] upload package finish
[INFO] stop service demo
[INFO] start service demo
[INFO] check service finish
[INFO] [demo] deploy success
[INFO] You can execute the following command to operate the service
[INFO] ========================================
[INFO] systemctl start demo.service
[INFO] systemctl stop demo.service
[INFO] systemctl status demo.service
[INFO] systemctl reload demo.service
[INFO] ========================================
[INFO] all deploy has finish
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:38 min
[INFO] Finished at: 2025-03-16T09:47:31+08:00
[INFO] Final Memory: 86M/2207M
[INFO] ------------------------------------------------------------------------
尊重作者,转载请注明出处!
版权申明:本文版权归作者所有,未经授权,任何单位或个人不得以任何形式转载、摘编或利用其它方式使用本博客内容。作者保留追究相关法律责任的权利。如需使用博客内容,请与作者联系获得授权。感谢对本文的尊重与支持。
免责声明:本网站所载内容仅供参考,不构成任何专业建议。用户基于本网站内容作出的决策,风险自担。对于因使用本网站内容而产生的任何直接或间接损失,本网站不承担任何责任。请用户审慎判断,理性使用。