因为我找不到任何这样的例子,我想知道是否可以创建一个使用(纯)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可以获取参数吗?
- 2. Liferay的RSS portlet
- 3. Portlet Java类实例是否与Liferay portlet web“实例”以1:1关联?
- 4. Liferay Portlet会告诉Liferay服务器是否正常运行
- 5. Liferay portlet直接URL?
- 6. liferay login without portlet
- 7. Liferay MVC Portlet java.lang.ClassNotFoundException
- 8. Ajax in liferay portlet
- 9. Liferay是否可以将自定义资源操作添加到我的portlet中?
- 10. Kotlin/Native是否可用?
- 11. portlet部署到Liferay
- 12. GWT Composite with liferay portlet
- 13. Liferay中的Alfresco Portlet Portlet临时不可用消息
- 14. 是否可以从Portlet代码访问ServletContext?
- 15. Liferay自定义登录Portlet
- 16. 从liferay portlet访问用户?
- 17. 在Liferay 7中调用portlet
- 18. Liferay Portlet中的PHP CMS
- 19. Liferay的搜索Portlet定制
- 20. 在Liferay 6.1 portlet中使用jRecorder
- 21. 使用response.sendRedirect在Liferay portlet中重定向
- 22. 如何在Liferay portlet中使用webjars
- 23. Portlet使用liferay和icefaces共享数据
- 24. 使用eclispe和pugins开发Liferay portlet SDK
- 25. 使用spring roo创建liferay portlet
- 26. Tomcat:使用Portlet运行的Liferay问题
- 27. 在Liferay Portlet中嵌入jpg
- 28. 是否可以在liferay-portlet.xml文件中使用portal-ext.properties变量?
- 29. 如何在我自己的portlet中使用liferay的嵌套Portlet?
- 30. 是否可以在liferay中设置默认的webcontent模板?