【问题标题】:Run JET Templates without Eclipse在没有 Eclipse 的情况下运行 JET 模板
【发布时间】:2012-07-13 04:04:29
【问题描述】:

我需要使用 maven 项目从 jet 模板生成 java 代码,它应该在 eclipse 环境之外完成,但到目前为止我还没有弄清楚如何做到这一点。

我正在使用 maven 3x 和 jet 1.1.x。

我尝试了几种方法,但似乎都没有效果:

  • 调用库 org.eclipse.emf.codegen.jet.JETCompiler。这个库似乎与 eclipse 的环境有很强的依赖关系,因此它失败了。
  • maven 的一个 jet 插件也不起作用,我使用的是官方网站 ([tikal-maven-jet-plugin][1]) 中提供的相同示例,如下所示:

    http://network.tikalk.com/release/tikal-maven-jet-plugin/usage.html

有人知道怎么做吗?

非常感谢, 卡洛斯

【问题讨论】:

    标签: eclipse maven eclipse-m2t-jet


    【解决方案1】:

    tikal-maven-jet-plugin 为我工作。

    这是我在src/main/templates/generator.jet 中使用的 JET 文件示例,我不使用 EMF 类,只使用标准 Map。

    <%@ jet class="TableModelGenerator" package="net.trajano.framework.tool" %>
    <% java.util.Map meta = (java.util.Map)argument; %> 
    package <%=meta.get("PackageName")%>;
    public class <%=meta.get("ClassName")%> {
    }
    

    我使用的插件配置是

    <plugin>
        <groupId>com.tikal</groupId>
        <artifactId>tikal-maven-jet-plugin</artifactId>
        <version>0.4.0</version>
        <executions>
            <execution>
                <phase>generate-sources</phase>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <includeTemplates>
                <include>**/*.jet</include>
            </includeTemplates>
        </configuration>
    </plugin>
    

    【讨论】:

    • 试过了,很多东西并没有真正起作用。就像多行上的imports 一样,StringBuffer 变量被称为builder 而不是stringBuffer,问题转义\" ...当然还有更多
    • 是的,我自己做的可以满足我的需求,但它是非常基本的,没有标签库之类的。
    【解决方案2】:

    由于 JET 的工作方式,它实际上只能在 eclipse 环境中运行。但是,实际上可以无头启动 eclipse 以运行 ant 构建脚本,因此您可以在没有 UI 的情况下运行所需的 eclipse 部分。为此,您需要启动 org.eclipse.ant.core.antRunner 应用程序。这里有一些关于如何做到这一点的文档:http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Ftasks%2FantRunner.htm

    一旦您启动了 antRunner 应用程序,您就可以使用 JET ant 任务来编译您的模板并运行您的转换:http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.jet.doc%2Freferences%2Fant%2FantTasks.xhtml

    关于无头模板编译有一些重要的注意事项,如果您正在无头编译 Eclipse 插件,这些注意事项是相关的,记录在这里:http://wiki.eclipse.org/JET_FAQ_How_to_I_compile_JET_templates_in_a_headless_build

    我不确定这与 Maven 的集成程度如何,但这似乎是 ant 的最佳方法。如果您想从 Java 运行转换,这里有一些信息:http://wiki.eclipse.org/JET_FAQ_How_do_I_run_a_JET_transformation_from_Java%3F。不过,您仍然需要在 eclipse 环境中才能正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-13
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 2020-08-23
      • 2018-06-06
      相关资源
      最近更新 更多