Smart-Sugar服务端 REST 接口地址。插件会把 JSON POST 到这个 URL,这个服务端是指谁的服务端?
1 . “服务端”指的是什么?
Smart-Sugar 体系分两部分:
• 客户端:smart-sugar-maven-plugin
(你在 POM 里声明的插件)。
• 服务端:与插件配套的 Smart-Sugar Web/REST 应用,默认启动后会暴露接口
POST /smartsugar/api/tree
、GET /smartsugar/api/tree?id=…
等,用来接收依赖树并把结果存库,再由前端页面可视化。
一句话:插件只是“采集 + 上传”,真正保存数据、渲染页面的是 Smart-Sugar 的后端 Web 服务。
2 . 能不能换成“我自己的”服务器?
可以,只要满足下面两件事:
-
可访问性
插件运行时能够通过 HTTP 或 HTTPS 把请求直接发到你指定的 URL(局域网或互联网都行)。
因此在<url>
填写你的地址就能“打过去”,这一点没问题。 -
兼容的接口协议
插件发送的内容格式基本上是POST /whatever (Content-Type: application/json) { "project": { … }, "modules": [ … ], "artifacts": [ … ], "edges": [ … ] }
• 字段名、层次、是否包含 token/Header,都取决于插件源码里的实现。
• 如果你自建的服务端 按同样的 JSON 结构 接收并返回插件期望的响应(通常是 200 OK + 一段 JSON,里面至少有 status/ok 字段),插件就会认为上传成功。
• 如果你想保存成自己定义的格式,或者返回信息不同,也行——但需要改插件源码(或写一个 “代理服务” 在中间做转换)。
3 . 如何具体操作?三条路径
-
直接部署官方 Smart-Sugar 服务端
Smart-Sugar 官方通常会提供:
• Docker 镜像(docker run -p 9999:8080 smartsugar/server:1.7
)
• 或 Spring Boot fat-jar(java -jar smartsugar-server-1.7.jar
)
部署完把<url>
改成你机器的地址即可,最省事。 -
自建兼容接口
如果你只想把依赖树存到自己的系统:
• 用任何语言写一个POST /smartsugar/api/tree
的 REST 接口;
• 按插件发来的 JSON 把数据插库或落文件;
• 返回{"status":"OK"}
。
这样插件就会“以为”一切正常,你后续可以自行处理数据。 -
Fork 插件
• 在 GitHub/Gitee 找到smart-sugar-maven-plugin
源码;
• 改@Parameter(name="url")
的默认路径、JSON 序列化逻辑、HTTP 客户端等;
• 重新mvn install
,然后在项目里引用你改过的 version。
这时插件就能发出完全自定义的 payload。
4 . 快速验证自己的接口是否能收数据
- 开一个简单的监听服务(例如用
nc
、python -m http.server
或 Postman Mock Server)。 - 在
<url>
填写监听地址。 mvn smart-sugar:upload -DskipTests
- 观察服务端控制台 / 抓包,看确实收到一条 POST 及其 JSON。
如果能收到,你就可以按照自己的需求保存或解析这些数据了。
5 . 小结
• <url>
指向的“服务端”本质上就是“谁来接收依赖树 JSON 的 HTTP 服务器”。
• 只要网络可达、协议对得上,你完全可以替换成自己写或自己部署的服务器;官方 Smart-Sugar Server 只是一个“开箱即用”的参考实现,并非唯一选项。