因爲我找不到任何這樣的例子,我想知道是否可以創建一個使用(純)Kotlin而不是傳統Java的Liferay Portlet。是否可以使用Kotlin Liferay portlet?
回答
Kotlin以JVM爲目標 - 技術上如此:是的。
有人能幫助你做到這一點,分享他們的發現:可能不是。
常見的構建過程是否存在?不是我所知道的。
如果您爲Liferay 6.2或7編寫portlet,它可能會有所作爲 - 除非您只是瞄準標準的JSR286 portlet。
這有點像Java門戶中的PHP-portlet。它可以完成,但是一旦遇到第一個問題,您就很難找到任何人來幫助您識別(或解決)問題。
只需稍微調整就可以在Kotlin中編寫portlet。
下載科特林庫的最新版本: https://github.com/JetBrains/kotlin/releases/tag/v1.0.4
解壓和lib文件夾的全部內容複製到Liferay的SDK lib文件夾。所以在最後,你應該有類似/path-to-liferay-sdk/lib/kotlin-*.jar
開放積累comon.xml文件Liferay的SDK目錄和搜索的javac標籤(它在900線左右)。
javac的標記之前添加以下行:
<typedef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${sdk.dir}/lib/kotlin-ant.jar"/>
,並插入<withKotlin/>
javac的標籤內:
<typedef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${sdk.dir}/lib/kotlin-ant.jar"/>
<javac
classpathref="@{javac.classpathref}"
compiler="${javac.compiler}"
debug="${javac.debug}"
deprecation="${javac.deprecation}"
destdir="@{javac.destdir}"
encoding="${javac.encoding}"
includeAntRuntime="false"
nowarn="${javac.nowarn}"
source="${javac.source}"
srcdir="@{javac.srcdir}"
target="${javac.target}">
<withKotlin/>
</javac>
就是這樣。如果你運行ant deploy
ant會爲你編譯* .kt文件和* .java文件。現在,如果您使用的是Intellij IDEA,則可以將Kotlin文件添加到您的項目中。 IDE將爲您配置該項目。它還會將3個文件(kotlin-reflect.jar,kotlin-runtime.jar,kotlin-runtime-sources.jar)添加到新創建的lib文件夾中。但是,您需要將這些文件複製到docroot/WEB-INF/lib文件夾中以使其可用。
我在這裏發佈了一個關於它的博客:http://www.lims.io/blog/liferay-portlets-in-kotlin
- 1. Liferay:可以從其他Portlet觸發Portlet
- 2. liferay是否可以獨立於portlet進行ajax調用?
- 3. Liferay portlet可以獲取參數嗎?
- 4. Portlet Java類實例是否與Liferay portlet web「實例」以1:1關聯?
- 5. Liferay的RSS portlet
- 6. Liferay Portlet prefrences
- 7. Liferay組織portlet
- 8. Liferay Portlet會告訴Liferay服務器是否正常運行
- 9. Kotlin/Native是否可用?
- 10. Liferay portlet直接URL?
- 11. 使liferay portlet不可實例化
- 12. liferay velocity portlet而不是jsp
- 13. liferay login without portlet
- 14. Liferay MVC Portlet java.lang.ClassNotFoundException
- 15. Liferay portlet + struts2 + Ajax
- 16. Ajax in liferay portlet
- 17. OpenLayers + Liferay Portlet
- 18. Liferay Portlet-Servlet通信
- 19. portlet部署到Liferay
- 20. 是否可以使用five.grok在Plone 4.1中註冊portlet?
- 21. Liferay中的Alfresco Portlet Portlet臨時不可用消息
- 22. GWT Composite with liferay portlet
- 23. 是否可以從Portlet代碼訪問ServletContext?
- 24. Portlet間通信 - Liferay
- 25. Liferay自定義登錄Portlet
- 26. Portlet到Liferay中的Portlet通信
- 27. 在Liferay 7中調用portlet
- 28. 從liferay portlet訪問用戶?
- 29. 是否可以在liferay-portlet.xml文件中使用portal-ext.properties變量?
- 30. Liferay Portlet中的PHP CMS