Maven архетип изисква номер на собственост

Имам Maven archtype, който използва 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