我有一個maven原型項目。當我使用這個原型時,我想讓一些文件報告實際的日期。我嘗試使用$日期,但Velocity無法識別它。我發現了一個名爲DateTools的東西,但我不知道如何使用它。這是我第一次使用Velocity。Maven原型+速度:如何顯示日期
回答
不幸的是,Maven Archetype插件沒有捆綁Velocity Tools。我已經通過修改Maven Archetypes插件添加了它。假設您使用的是Maven 2.2.1,請執行以下步驟:
svn co -q http://svn.apache.org/repos/asf/maven/archetype/tags/maven-archetype-2.2
cd maven-archetype-2.2
curl -k -O https://raw.github.com/gist/3404715/59c7fa1c20c60e2a165de4109c2acffb8026febd/velocity-tools.patch
patch -p0 -i velocity-tools.patch
mvn install
修改後的Maven Archetype插件現在將安裝在本地。
$date
您的模板中的用法現在應呈現,例如,
The date is $date
...到:
The date is Aug 20, 2012 4:40:22 PM
(道歉復活一個老問題,但我通過一種方式合作,以實現這一目標,而無需拉和補丁插件)。
對於希望能夠引用日期字段在他們的Maven原型模板的人,我能得到它具有以下一組定義的工作在我的pom.xml模板頂部
#set($str = "")
#set($dt = $str.getClass().forName("java.util.Date").newInstance())
#set($year = $dt.getYear() + 1900)
如果您在插入這些行時已經有模板可用的基於對象的變量,那麼您可以劃分$ str聲明並使用其中一個變量,因爲從哪裏獲取對Class.forName的引用並不重要()從。
注意:我試圖得到這與Calendar.getInstance()的工作不成功。
我設法從@maaxiim解決減磅,一條線路:
#set($year = $package.getClass().forName("java.util.Date").newInstance().getYear() + 1900)
的$包變量將始終可用從Maven Archetype插件。其他內置函數也可以工作,但其中大多數都很長,而$ artifactId.getClass()只是看起來......錯了。
在Java 8,有格式:
#set($ldt = $package.getClass().forName("java.time.LocalDateTime").getMethod("now").invoke(null))
#set($dtf = $package.getClass().forName("java.time.format.DateTimeFormatter").getMethod("ofPattern", $package.getClass()).invoke(null, "yyyy/MM/dd HH:mm:ss"))
#set($date = $ldt.format($dtf))
有點諷刺你使用包。雖然它是一個字符串,並且package變量總是被設置的,所以這是完全有效的,但是事實上,你在一個名爲package的變量上使用getClass然後從另一個包中獲得一個不同的類是很有趣的。這似乎是最新的解決方案,如果你不想依靠更改默認插件(maven原型) – 2017-06-03 19:46:43
你讓我發現這個無用的.forName(「java.lang.String」),謝謝! – 2017-06-06 07:53:28
不客氣。使用這段代碼時我遇到了一些問題。更多信息在這裏:https://stackoverflow.com/q/44350467/2877358小心看看有什麼問題? – 2017-06-06 07:58:26
- 1. Appfuse-Maven日期選取器未顯示
- 2. PHP日期如何顯示
- 3. 如何顯示日期?
- 4. 構建和原型到Maven,速度ParseErrorException與JSP的
- 5. 爲原型maven項目設置動態速度屬性
- 6. Maven快速入門原型不存在
- 7. 如何共享Maven原型
- 8. 如何使用系統日期時間顯示原始日期C#
- 9. 如何使Eclipse的快速入門maven原型適用於1.4.9?
- 10. VisualForce日期格式 - 如何顯示日
- 11. 日期原型屬性
- 12. 原型日期選擇器
- 13. 顯示日期
- 14. 顯示日期
- 15. 以角度顯示發佈日期
- 16. 日期計算 - 進度條顯示timeleft
- 17. 顯示日期的角度指令
- 18. 從Maven原型
- 19. Struts2 maven原型
- 20. Maven原型
- 21. webdriver maven原型
- 22. 如何從數據庫中顯示日期輸入型=日期在PHP
- 23. 如何在日期類型字段中顯示日期和時間
- 24. 以角度顯示日期範圍內的日期
- 25. 如何以角度顯示MM-dd-yyyy格式的日期
- 26. 顯示日期作爲輸入型DD-MM-yyyy格式=日期
- 27. 造型日期選擇器:突出顯示特定日期
- 28. 如何在模型中顯示按日期分隔的表格
- 29. 顯示速度 - Xcode的
- 30. DatePicker顯示速度很慢
非常感謝,它的工作原理就像一個魅力。這個補丁是否會在Maven-Archetype-plugin的未來版本中應用? – Alf 2012-08-20 18:31:23
不知道,我今天早上剛剛寫到:-)我認爲焦點可能在Maven 3上。 – opyate 2012-08-20 18:55:03
仍在使用maven-archetype-plugin 3.0.0。謝謝! – farkasseb 2017-02-26 18:57:19