有没有办法去除maven的一些注释?

时间:2011-05-13 10:42:11

标签: maven annotations maven-plugin

我想知道在“ maven build ”时是否有办法删除一些注释?

为方便起见,我在我的POJO中注释了一些第三方的注释,例如javax.persistence.*org.hibernate.annotations.*org.apache.lucene.analysis.* ......等等......等等。

当我将它们捆绑在一起并部署到JavaEE / Spring服务器/容器时,它运行良好。

但在开发Android时,我希望尽可能多地重用我的代码/ POJO 。我想直接导入foobar.core.User,而不是创建另一个没有第三方注释的foobar.android.User。也就是说,我不希望jar依赖于其他spring / hibernate工件。

那么,有没有办法在运行'maven build'时删除一些注释?我只需要剥离“一些”第三方注释,并保留自定义核心注释。

这样我就可以分别或同时构建foobar-core.jarfoobar-core-stripped.jar

3 个答案:

答案 0 :(得分:1)

尝试做同样的事情。我发现了一个可以从编译类中删除注释的ant任务。

http://sourceforge.net/projects/purgeannorefs/

然后可以使用maven ant插件作为maven构建的一部分来调用ant任务。

我知道这是一个解决方法。但比维护2个pojo对象副本更好。

答案 1 :(得分:0)

如果找不到可以完成此任务的非maven工具,则不会找到maven插件。注释类的Mmake存根副本将它们放在jar中,并将它们添加到Android的类路径中。

答案 2 :(得分:0)

您可以使用maven-antrun-plugin对所有注释进行查找和替换...我在以下答案中执行此操作以注释掉所有@XmlAttribute注释:

https://stackoverflow.com/a/10036841/342745

有点hacky,但它对我有用。