3

Mavenプロジェクトを使用してjetテンプレートからJavaコードを生成する必要があり、Eclipse環境の外部で実行する必要がありますが、これまでのところ、これを行う方法がわかりません。

私はmaven3xとjet1.1.xを使用しています。

私はいくつかのアプローチを試しましたが、どれもうまくいかないようです:

  • ライブラリorg.eclipse.emf.codegen.jet.JETCompilerを呼び出します。このライブラリは、Eclipseの環境に強く依存しているようで、そのため失敗しました。
  • Mavenのjetプラグインの1つも機能せず、公式Webサイト([tikal-maven-jet-plugin] [1])で提供されているものと同じ例を使用しています。次のようになります。

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

誰かがこれを行う方法を知っていますか?

どうもありがとう、カルロス

4

2 に答える 2

2

JETの動作方法により、実際には日食環境内でのみ実行できます。ただし、実際には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 。ただし、それが機能するためには、まだ日食環境にいる必要があります。

于 2012-07-27T13:47:46.787 に答える
0

tikal-maven-jet-pluginは私のために働いた。

これは私が使用したJETファイルのサンプルですsrc/main/templates/generator.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>
于 2014-07-21T10:49:47.000 に答える