Есть способ снять аннотации от maven? - PullRequest
3 голосов
/ 13 мая 2011

Интересно, есть ли способ отбросить некоторые аннотации, когда ' maven build '?

По соображениям удобства, я добавляю аннотации некоторых сторонних разработчиков в мой POJO, например javax.persistence.*, org.hibernate.annotations.*, org.apache.lucene.analysis.* ... бла ... бла.

Хорошо работает, когда я объединяю их вместе и развертываю на сервере / контейнере JavaEE / Spring.

Нопри разработке Android я хочу максимально использовать мой код / ​​POJOs .Я хочу напрямую импортировать foobar.core.User вместо создания другого foobar.android.User без сторонних аннотаций.То есть я не хочу, чтобы баночка зависела от других артефактов пружины / гибернации.

Итак, есть ли способ удалить некоторые аннотации при запуске maven build?Мне просто нужно убрать «некоторые» сторонние аннотации и сохранить пользовательские аннотации ядра.

, чтобы я мог создавать foobar-core.jar и foobar-core-stripped.jar соответственно или одновременно .

Ответы [ 3 ]

1 голос
/ 31 мая 2011

Попытка сделать то же самое. Я нашел задачу муравья, которая может удалять аннотации из скомпилированных классов.

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

Плагин maven ant может затем использоваться для вызова задачи ant как часть вашей сборки maven.

Я знаю, что это обходной путь. Но лучше, чем поддерживать 2 копии объектов pojo.

0 голосов
/ 27 июля 2012

Вы можете использовать maven-antrun-plugin, чтобы найти и заменить все аннотации ... Я сделал это в следующем ответе, чтобы закомментировать все аннотации @XmlAttribute:

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

Хак, но у меня это сработало.

0 голосов
/ 13 мая 2011

Если вы не можете найти не-maven инструмент, который делает эту работу, вы не найдете maven-плагин. Скопированные Mmake копии классов аннотаций помещают их в банку и добавляют в путь к классам для Android.

...