我想知道在“ 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.jar
和foobar-core-stripped.jar
。
答案 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,但它对我有用。