Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有Eclipse的情况下运行JET模板_Eclipse_Maven_Eclipse M2t Jet - Fatal编程技术网

在没有Eclipse的情况下运行JET模板

在没有Eclipse的情况下运行JET模板,eclipse,maven,eclipse-m2t-jet,Eclipse,Maven,Eclipse M2t Jet,我需要使用maven项目从jet模板生成java代码,这应该在eclipse环境之外完成,但到目前为止我还没有弄清楚如何做到这一点 我使用的是maven 3x和jet 1.1.x 我尝试过几种方法,但似乎都不管用: 调用库org.eclipse.emf.codegen.jet.JETCompiler。这个库似乎对eclipse的环境有很强的依赖性,因此失败了 maven的一个jet插件也不起作用,我使用的示例与官方网站([tikal maven jet plugin][1])中提供的示例相同,

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

我使用的是maven 3x和jet 1.1.x

我尝试过几种方法,但似乎都不管用:

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

有人知道怎么做吗

非常感谢,
Carlos

由于JET的工作方式,它实际上只能在eclipse环境中运行。然而,实际上可以无头启动eclipse来运行ant构建脚本,这样您就可以在没有UI的情况下获得需要运行的eclipse部件。为此,您需要启动org.eclipse.ant.core.antRunner应用程序。这里有一些关于如何做到这一点的文档:

启动antRunner应用程序后,可以使用JET ant任务编译模板并运行转换:

关于无头模板编译,有一些重要的注意事项,如果您正在无头编译eclipse插件,则这些注意事项是相关的,如下所述:


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

tikal maven jet插件对我很有用

这是我在
src/main/templates/generator.JET中使用的一个JET文件示例,我不使用EMF类,只使用标准映射

<%@ 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>

com.tikal
tikal maven jet插件
0.4.0
生成源
生成
**/*杰特先生

试过了,很多东西都不起作用。与多行上的
imports
一样,
StringBuffer
变量被称为
builder
,而不是
StringBuffer
,逃逸问题
\“
…当然还有很多我自己做的,可以满足我的需要,但它是非常基本的无标记库之类的。