2016-09-16 110 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