AI 天天反编译我 ~/.m2 里的 jar 包来猜代码,佬友们都是怎么解决依赖库源码不可见的问题的?

Charles 2026-08-31 13:47 1

项目 A 依赖公司组件库 B,B 独立仓库、以 jar 形式发版。AI 编程工具(Cursor 等)遇到 B 的类就两种表现:要么靠训练记忆瞎编 API,要么去反编译 ~/.m2 里的 jar,反编译出来的代码没注释没泛型,AI 照着写必翻车。


想问下做多仓库架构的佬友们,你们怎么让 AI 稳定读到依赖库源码的?纯三方依赖(没本地 checkout 的)又是怎么处理的?

最新回复 (19)
  • parksi 08-31 13:48
    1

    把对应地址写Agents.md里,说明情况,Agent 就会自己去查

    第三方可以看看 context7 和 deepwiki 这些 mcp

  • Charles 楼主 08-31 13:51
    2

    我现在是手动告诉 ai,写到 AGENTS.md 里的话,地址其他人用不了。

  • parksi 08-31 13:52
    3

    你们公司的代码仓库没有固定地址吗

  • Charles 楼主 08-31 13:53
    4

    直接写 git 地址吗?我是写的本地地址

  • Brantfang 08-31 13:53
    5

    有些包不是提供 sources 源码包的吗?LSP 可以查看到的。

  • DevExzh 08-31 13:54
    6

    我一般就是开一个单独的文件夹,叫 3rdparty,gitignore 掉它,让 agents 直接去读这个文件夹下面的文件

  • Charles 楼主 08-31 13:57
    7

    因为有专属组件库,所以想让 ai 直接读取源码目录(甚至可以看组件库对应的 AGENTS.md),而不是去反编译或顺着源码包去看。

  • Charles 楼主 08-31 13:57
    8

    这个是让 ai 维护吗?还是自己 clone 下来放那只读?

  • parksi 08-31 13:58
    9

    可以让 AI 写个 MCP,找个人维护,一个公司都用这个 mcp,也是个方法

  • DevExzh 08-31 13:59
    10

    我是手动把需要参考的文档spec、源码什么的先放到里面去,后续有需要再让agent维护呗


    什么都让ai干的话,给你猛猛造AI slops,非常恶心

  • Brantfang 08-31 14:02
    11

    有源码直接放在项目根目录(工作空间)下就行,然后指定遇到相关组件去对应目录读取就行。其实源码包也可以直接解压到项目目录中(工作空间),AGENTS.md 等文件也可以 maven-sources 打包进去的。

  • Charles 楼主 08-31 14:05
    12

    看来似乎都是放一个只读副本或 monorepo(我们这个不适合 monorepo),个人总感觉不是很优雅。 ^-^

  • undefined 08-31 14:07
    13

    .m2 中也可以捞源码jar的呀。。

    你用idea的话自己右键可以获取source的。

    这样 ai就自己找源码去了,不会自己反编译了。


    你可以让ai一次性的帮你通过mvn把源码的source.jar全捞了。


    ps: b的源码上传mvn私服么?不上传就只能你去获取然后指定了。

  • Charles 楼主 08-31 14:09
    14

    有没有现成的 AGENTS.md 示例描述这段的,佬友们?


    例如:本项目依赖 xx、xxx,如果需要检索,请先下载 source 到 xx。

  • Brantfang 08-31 14:09
    15

    git submoudle 可以了解一下也许可以满足,不过有强依赖的话 monorepo 比较好。

  • Dyna 08-31 14:10
    16

    1. 上传源码包和文档包。

    2. 如果有了源码包和文档包,还需要agents.md之类的话,那就是公共包写的太烂了。

  • Dyna 08-31 14:12
    17

    不需要,AI没这么蠢,它自己知道去.m2里面读源码和文档。

  • marre 08-31 14:14
    18

    插个眼,确实喜欢天天反编译一些jar来看源代码…

  • Charles 楼主 08-31 14:14
    19

    emm…都是用中等LLM或auto,所以想把规则确定了,看起来这个比较适合三方依赖的场景。我这个算是强依赖的两个项目仓库。

* 帖子来源Linux.do
返回