Требуемый номер свойства архетипа Maven

У меня есть архипип Maven, который использует requiredProperty, который содержит число, но переменная скорости является строкой. Итак, в моем шаблоне я не могу проверить, больше ли это свойство числа:

#if( $myVar gt 5 ) 

Я безуспешно протестировал следующее решение.

Я также пробовал это:

#set( $intVar = Integer.parseInt($myVar) )

Это также провал при генерации архетипа.

Любой совет?


person krampstudio    schedule 31.12.2012    source источник


Ответы (2)


Вы не можете ссылаться на классы из Velociy, поэтому Integer.parseInt не сработает. Однако, поскольку в Java любой статический метод может вызываться как метод экземпляра, а Velocity — это просто замаскированная Java, вы можете вызывать parseInt для любого целого числа. Итак, вы можете попробовать этот трюк:

#if ($myVar.length().parseInt($myVar) gt 5)

Вы получаете целое число, начиная с одной переменной, которая, как вы предполагаете, у вас есть, $myVar.

person Sergiu Dumitriu    schedule 01.01.2013
comment
другой вариант, который более понятен в использовании, — установить для Integer.class переменную Velocity, когда вы создаете контекст в Java, а затем ссылаетесь на него, то есть в Java: context.put(intClass, Integer.class); и в скорости: $intClass.parseInt($myVar) - person centic; 03.01.2013
comment
За исключением того, что часть Velocity обрабатывается Maven, поэтому для этого нужно копнуть глубже в Maven. - person Sergiu Dumitriu; 03.01.2013
comment
@centic, но я согласен, что это было бы чище или даже лучше, используйте $mathtool.toInteger($myVar) - person Sergiu Dumitriu; 03.01.2013

Я реализовал проверку пользовательского ввода на основе регулярного выражения, представленного в дескрипторе архетипа:

https://issues.apache.org/jira/browse/ARCHETYPE-487

надеюсь, это решит эту проблему для будущих версий плагина архетипа maven.

person mryan    schedule 04.09.2015