2017-09-15 25 views
1

JSweetを使用してJavaモデルクラスをJavaScriptに変換しようとしています。モデルクラスには@ColumnのようなJPAアノテーションが含まれています。 import javax.persistence.Columnに遭遇すると直ちに蒸散が失敗します。 JPA注釈はJavaScriptでは無関係であり、翻訳されるべきではありません。 Javaコードを変更せずにこれを行うことはできますか?JSweetでJavaアノテーションを処理する

もっと一般的には、インポートされたパッケージへの参照がすべて@Erasedメソッドにある場合など、JSweetでインポート文を無視させる方法がありますか?

答えて

0

通常、JSweetは未知のアノテーションを消去するだけなので、あなたのコードはきれいになります。

最初に確認する:クラスパスまたはMavenの依存関係にJPA jarがありますか? JSweetはすべての型がクラスパスにあることを要求するjavacを使用します。私は@Column注釈がそこにあるはずだと思います:https://mvnrepository.com/artifact/javax.persistence/persistence-api/1.0.2

質問の2番目の部分として、JSweet v2はコードの生成を調整するAPIを提供しています。 specsを参照してください。 APIがPrinterAdapterの場合、インポートが不要な場合はnullを返すようにneedsImportメソッドをオーバーライドできます。しかし、私は注釈が自動的に消去されるので、あなたのケースではこれを必要としないと信じています。

+0

ありがとうございます。確かに、私はPOMのjavax.persistenceについて言及することを忘れていました。私たちは通常のビルドプロセスにMavenを使用していないからです。 Mavenを使用したくない場合は、Eclipseプラグインのみを使用できますか? – warakawa

+0

Antをコマンドラインランチャーで使用することもできます。私はjsweet-examplesプロジェクトにbuild.xmlがあると思う:https://github.com/cincheo/jsweet-examples(ただしMavenではなく、手動で依存関係を扱うことができる) –

関連する問題