首页 > 解决方案 > 是否可以忽略基于包文件夹检测的类?

问题描述

我们目前已经ByteBuddy将一些代码注入到特定包的每个方法中,例如com.contoso.widgets. 这很好用!

但是,我们在同一个包的tst文件夹中也有测试,我们不希望对其进行ByteBuddy检测(但我们确实希望对同一包中的被测实体进行检测!)。

有没有办法定义AgentBuilder它忽略所有来自的类tst,而不是src?感觉好像我可能遗漏了一些明显的东西,但在梳理完文档后并没有成功。

标签: byte-buddy

解决方案


Byte Buddy 支持提供任何类型的 ProtectionDomain 的 RawMatcher。保护域提供对类型的 CodeSource 的访问,您可以从中找到其类文件的文件系统位置。

但是请注意,此值取决于类加载器、操作系统、打包格式和部署。它可能适用于标准化测试环境,但如果您从中派生,可能会让您失败。因此,建议依靠更有条理的东西。


推荐阅读