Java 使用velocity进行插件开发

Java 使用velocity进行插件开发,java,velocity,intellij-plugin,Java,Velocity,Intellij Plugin,编辑 唐纳,这个问题怎么不好?我面临这个问题是因为velocity需要类路径加载器 其思想是通过UI基于配置创建预定义的java类。 创建了一个弹出UI以获取配置的操作。 预定义的java自定义代码作为velocity模板存储在插件资源中。 当使用下面的代码加载模板时,它抛出一个错误(未找到资源) 使用以下方法来达到所需的结果。velocity evaluate接受velocity上下文、velocityTemplate文件作为读卡器,要写入输出,它需要一个写入器。下面的函数对于忽略任何环境中的

编辑

唐纳,这个问题怎么不好?我面临这个问题是因为velocity需要类路径加载器

其思想是通过UI基于配置创建预定义的java类。 创建了一个弹出UI以获取配置的操作。 预定义的java自定义代码作为velocity模板存储在插件资源中。 当使用下面的代码加载模板时,它抛出一个错误(未找到资源


使用以下方法来达到所需的结果。velocity evaluate接受velocity上下文、velocityTemplate文件作为读卡器,要写入输出,它需要一个写入器。下面的函数对于忽略任何环境中的资源加载程序问题都很有用

        VelocityEngine velocityEngine = new VelocityEngine();
        velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
        velocityEngine.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
        velocityEngine.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, new NullLogChute());
        velocityEngine.init();
        VelocityContext context = new VelocityContext();
        context.put("fields",model.getFields());
        context.put("vFunction",new VelocityFunction());
        InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("EntityModel.vm");
        InputStreamReader inputStreamReader = new InputStreamReader(resourceAsStream);
        velocityEngine.evaluate(context, writer, "ERROR", inputStreamReader);

可能是
StandardResource
扩展点?(在上提到,无论如何可能对您有用。)
        VelocityEngine velocityEngine = new VelocityEngine();
        velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
        velocityEngine.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
        velocityEngine.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, new NullLogChute());
        velocityEngine.init();
        VelocityContext context = new VelocityContext();
        context.put("fields",model.getFields());
        context.put("vFunction",new VelocityFunction());
        InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("EntityModel.vm");
        InputStreamReader inputStreamReader = new InputStreamReader(resourceAsStream);
        velocityEngine.evaluate(context, writer, "ERROR", inputStreamReader);