Как использовать cxf-xjc-ts с ToStringBuilder из lang3?
При использовании cxf-xjc-ts
плагин во время xsdtojava
можно добавить свойство <extensionArg>-Xts</extensionArg>
чтобы компилятор генерировал следующий метод:
import org.apache.commons.lang.builder.ToStringBuilder;
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, JAXBToStringStyle.DEFAULT_STYLE);
}
Проблема: при наличии apache.commons-lang3
только на classpath пакет должен быть:org.apache.commons.lang3.builder.ToStringBuilder
и используя org.apache.commons.lang3.builder.DEFAULT_STYLE
,
Вопрос: как мне сказать -ts
плагин для фактического использования компоновщика из lang3 во время генерации?
2 ответа
Это было исправлено в v3.1.0
@see https://issues.apache.org/jira/browse/CXFXJC-16
So now -Xts option is using lang3
,
Я хотел бы предложить использовать немного другой подход.
Включает 2 шага:
опустить генерацию стандартных методов toString с помощью плагина xjc - следовательно, он не будет использовать commons-lang (без 3) 'ToStringBuilder',
используйте commons-lang3 'ToStringBuilder.reflectionToString' непосредственно там, где необходимо 'toString'.
(Во время разработки я столкнулся с нежелательным использованием 'commons-lang', и мой подход предоставляет возможность пропустить использование 'commons-lang' вместе с 'commons-lang3').