2016-09-16 13 views

ответ

1

Kotlin нацеливает JVM - так технически: Да.

Кто-нибудь сможет вам помочь, поделитесь своими результатами: Наверное, нет.

Существуют ли общие процессы сборки? Не то, чтобы я знал.

Возможно, это будет иметь значение, если вы напишете портлет для Liferay 6.2 или для 7 - если только вы не нацелитесь на стандартный портлет JSR286.

Это немного похоже на PHP-портлеты на Java-портале. Это можно сделать, но как только вы столкнетесь с первой проблемой, вам будет сложно найти кого-нибудь, чтобы помочь вам определить (или исправить) проблему.

4

Можно написать портлеты в Котлине только с небольшой настройкой.

Скачать последнюю версию Котлин библиотеки: https://github.com/JetBrains/kotlin/releases/tag/v1.0.4

Разархивировать и скопировать все содержимое папки Lib в Lib папку Liferay SDK. Таким образом, в конце концов, вы должны иметь что-то вроде /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, муравь будет компилировать * .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

Смежные вопросы