首页 > 解决方案 > 如何在 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。

标签: javaunit-testingintellij-ideapluginsintellij-plugin

解决方案


Manifold 插件分析您项目的构建配置以动态应用功能,例如通过@Jailbreak 支持类型安全反射。请参阅manifold-ext 设置说明。在 Gradle 术语中,要支持 @Jailbreak,您的项目必须具有实现依赖manifold-ext-rtannotationProcessor依赖manifold-ext。此外,您需要添加-Xplugin:Manifold编译器参数。此信息在设置文档中有详细说明。

如果您不使用 Gradle 或 Maven,则可以在模块的依赖项设置中使用Manifold 二进制文件直接配置您的 IntelliJ 项目。您还需要通过 File |直接设置编译器参数(-Xplugin:Manifold和)。-processorpath设置 | 构建、执行、部署 | 编译器 | Java 编译器。


推荐阅读