2016-09-16 81 views

回答

1

Kotlin以JVM为目标 - 技术上如此:是的。

有人能帮助你做到这一点,分享他们的发现:可能不是。

常见的构建过程是否存在?不是我所知道的。

如果您为Liferay 6.2或7编写portlet,它可能会有所作为 - 除非您只是瞄准标准的JSR286 portlet。

这有点像Java门户中的PHP-portlet。它可以完成,但是一旦遇到第一个问题,您就很难找到任何人来帮助您识别(或解决)问题。

4

只需稍微调整就可以在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