小智 5
只需进行一点调整就可以用 Kotlin 编写 portlet。
下载最新版本的kotlin库: https://github.com/JetBrains/kotlin/releases/tag/v1.0.4
解压lib文件夹并将其全部内容复制到Liferay SDK lib文件夹中。所以最后你应该有类似 /path-to-liferay-sdk/lib/kotlin-*.jar 的内容
打开Liferay SDK目录中的build-comon.xml文件并搜索javac标签(在第900行左右)。
在 javac 标记之前添加以下行:
<typedef resource="org/jetbrains/kotlin/ant/antlib.xml" classpath="${sdk.dir}/lib/kotlin-ant.jar"/>
Run Code Online (Sandbox Code Playgroud)
并<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>
Run Code Online (Sandbox Code Playgroud)
就是这样。如果您运行ant deployant,它将为您编译 *.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