我有一個使用requiredProperty
包含一個數字,但速度變量是字符串的Maven archtype。所以,在我的模板,我不能,如果這個屬性是多了一些更大的考驗:Maven原型所需財產編號
#if($myVar gt 5)
我已經測試了以下solution沒有成功。
我也試過這樣:
#set($intVar = Integer.parseInt($myVar))
這也是失敗的原型產生。
有什麼建議嗎?
我有一個使用requiredProperty
包含一個數字,但速度變量是字符串的Maven archtype。所以,在我的模板,我不能,如果這個屬性是多了一些更大的考驗:Maven原型所需財產編號
#if($myVar gt 5)
我已經測試了以下solution沒有成功。
我也試過這樣:
#set($intVar = Integer.parseInt($myVar))
這也是失敗的原型產生。
有什麼建議嗎?
你不能從Velociy中引用類,所以Integer.parseInt
將不起作用。但是,由於在Java中任何靜態方法都可以作爲實例方法調用,並且Velocity只是變相的Java,所以您可以在任何整數上調用parseInt
。所以,你可以試試這招:
#if ($myVar.length().parseInt($myVar) gt 5)
你得到從你假設你有,$myVar
的一個變量開始的整數舉行。
我已經實現基於原型描述符中提供一個正則表達式驗證用戶輸入:
https://issues.apache.org/jira/browse/ARCHETYPE-487
希望它會解決這個問題的Maven Archetype插件的未來版本。
它不是優雅的,但它的工作原理;) – krampstudio
另一個更清潔的選項是將Integer.class設置爲Velocity變量,當你建立在Java中的上下文,然後引用,即在Java中:context.put(「intClass」,Integer.class);和Velocity:$ intClass.parseInt($ myVar) – centic
除了Velocity部分是由Maven處理的,所以這需要在Maven中深入挖掘。 –