java - 如何在 IntelliJ 中使用 Manifold 插件?
问题描述
我正在尝试使用 Manifold 插件,如下所示:
@Test
void printBoard() {
@JailBreak TicTacToe game = new TicTacToe();
game.printBoard();
assertEquals("- ,- ,-\r\n- ,- ,-\r\n- ,- ,-", outputStreamCaptor.toString()
.trim());
}
在我更改游戏中的私有棋盘变量后,我想添加更多断言来测试棋盘是否打印正确(这就是我想使用 JailBreak 注释的原因。
我已经在 Intellij 中安装了插件,方法是转到设置 > 插件 > 搜索歧管 > 安装/应用它。然后我重新启动了我的 IDE,但没有运气(编译器无法识别@JailBreak)。
有没有人对可能出现的问题有任何想法?如果有帮助的话,我正在使用 Java8。
解决方案
Manifold 插件分析您项目的构建配置以动态应用功能,例如通过@Jailbreak 支持类型安全反射。请参阅manifold-ext 设置说明。在 Gradle 术语中,要支持 @Jailbreak,您的项目必须具有实现依赖manifold-ext-rt
和annotationProcessor依赖manifold-ext
。此外,您需要添加-Xplugin:Manifold
编译器参数。此信息在设置文档中有详细说明。
如果您不使用 Gradle 或 Maven,则可以在模块的依赖项设置中使用Manifold 二进制文件直接配置您的 IntelliJ 项目。您还需要通过 File |直接设置编译器参数(-Xplugin:Manifold
和)。-processorpath
设置 | 构建、执行、部署 | 编译器 | Java 编译器。
推荐阅读
- ruby-on-rails - 如果关联记录不存在,Rails 会检索记录?
- python - Windows 10 64位Anaconda安装问题
- typescript - 如何在 Typescript 中使用 Omit<> 中的“或”运算符?
- permissions - ClickHouse 仅授予用户对数据库中多个表的访问权限
- css - 为什么 5px 的填充不影响我的 th?
- javascript - 如何在带有孩子的 JSON 对象上制作地图
- scala - 如何解决用户定义函数的 SparkException?
- sql - 将值插入记录类型表
- css - 媒体查询无法正常工作(平板电脑大小有效,移动设备无效)
- python - 如何从python中的二维数组中删除n个对象?