2017-09-15 132 views
1

我正试图使用​​JSweet将Java模型类转换为JavaScript。模型类包含JPA注释,如@Column。只要遇到import javax.persistence.Column,转录就会失败。 JPA注释在JavaScript中是不相关的,不应该被转发。这可以在不更改Java代码的情况下完成吗?处理JSweet中的Java注释

更一般地说,有没有办法让JSweet忽略导入语句,例如,当所有对导入包的引用都在@Erased方法中?

回答

0

通常情况下,JSweet只会删除未知的注释,所以你的代码应该很好地传递。

首先检查:你的classpath或Maven依赖项中是否有JPA jar? JSweet使用javac,它要求所有类型都在类路径中。我猜@Column注释应该在那里:https://mvnrepository.com/artifact/javax.persistence/persistence-api/1.0.2

至于你的问题的第二部分,JSweet v2提供了一个API来调整代码的生成。请参阅specs。在PrinterAdapter API中,您可以覆盖needsImport方法以在不需要导入时返回null。不过,我相信你不需要这样做,因为注释会自动删除。

+0

谢谢。的确,我忘了在pom中提到javax.persistence,因为我们没有在常规的构建过程中使用Maven。如果我不想使用Maven,Eclipse插件是否唯一替代方案? – warakawa

+0

您也可以在命令行启动器中使用Ant。我认为在jsweet-examples projet中有一个build.xml:https://github.com/cincheo/jsweet-examples(但你可以手动处理你的依赖关系,而不是Maven)。 –