【问题标题】:Any way to strip off some annotations by maven?有什么方法可以通过 Maven 去除一些注释?
【发布时间】:2011-05-13 10:42:11
【问题描述】:

不知道有没有办法在'ma​​ven build'时去掉一些注释?

为方便起见,我将一些 3rd 方的注释注释到我的 POJO 中,例如 javax.persistence.*org.hibernate.annotations.*org.apache.lucene.analysis.* ... blah...blah。

当我将它们捆绑在一起并部署到 JavaEE/Spring 服务器/容器时效果很好。

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

那么,有什么方法可以在运行“maven build”时去掉一些注释?我只需要去掉“一些”第 3 方注释,并保留自定义核心注释。

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

【问题讨论】:

    标签: maven annotations maven-plugin


    【解决方案1】:

    尝试做完全相同的事情。我发现了一个 ant 任务,它可以从编译的类中去除注释。

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

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

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

    【讨论】:

    • 谢谢,很有用。但仍然不是 maven 解决方案... :)
    • 现在好像有maven插件了,但是项目本身在maven central中是没有的。
    【解决方案2】:

    如果您找不到可以完成这项工作的非 maven 工具,那么您将找不到 maven 插件。注释类的 Mmake 存根副本将它们放在一个 jar 中,并将它们添加到 Android 的类路径中。

    【讨论】:

      【解决方案3】:

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

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

      有点老套,但对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-24
        • 1970-01-01
        • 1970-01-01
        • 2010-09-08
        • 2018-12-06
        • 2017-10-25
        • 1970-01-01
        • 2021-07-28
        相关资源
        最近更新 更多