Возможно ли портлет Kotlin Liferay?

Поскольку я не мог найти никакого примера для этого, мне интересно, можно ли создать портлет Liferay, который использует (чистый) Kotlin вместо традиционной Java.

Котлин нацелен на JVM – так технически: Да.

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

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

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

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

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

Загрузите последнюю версию библиотеки kotlin: https://github.com/JetBrains/kotlin/releases/tag/v1.0.4

Разархивируйте и скопируйте все содержимое папки lib в папку Liferay SDK lib. Поэтому в конце вы должны иметь что-то вроде /path-to-liferay-sdk/lib/kotlin-*.jar

Откройте файл build-comon.xml в каталоге SDK Liferay и найдите ярлык 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