Поскольку я не мог найти никакого примера для этого, мне интересно, можно ли создать портлет Liferay, который использует (чистый) Kotlin вместо традиционной Java.Возможно ли портлет Kotlin Liferay?
ответ
Kotlin нацеливает JVM - так технически: Да.
Кто-нибудь сможет вам помочь, поделитесь своими результатами: Наверное, нет.
Существуют ли общие процессы сборки? Не то, чтобы я знал.
Возможно, это будет иметь значение, если вы напишете портлет для Liferay 6.2 или для 7 - если только вы не нацелитесь на стандартный портлет JSR286.
Это немного похоже на PHP-портлеты на Java-портале. Это можно сделать, но как только вы столкнетесь с первой проблемой, вам будет сложно найти кого-нибудь, чтобы помочь вам определить (или исправить) проблему.
Можно написать портлеты в Котлине только с небольшой настройкой.
Скачать последнюю версию Котлин библиотеки: 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
- 1. Возможно ли в Liferay добавить пользовательские ресурсы-действия в портлет?
- 2. Изменить портлет Marketplace Liferay
- 3. Liferay - только портлет? ЗРП?
- 4. Можно ли вызвать портлет: actionURL два раза подряд? (портлет liferay)
- 5. Сделать портлет liferay невозможен
- 6. Как дублировать портлет liferay
- 7. Liferay между портлет связи
- 8. Liferay объявления портлет крючок
- 9. Показать портлет Liferay внутри другого портлета liferay
- 10. Встраивание jpg в портлет Liferay
- 11. Развертывание простой портлет Liferay - ClassCastException
- 12. Сформировать портлет идентификатор экземпляра Liferay
- 13. Liferay 6.2 портлет пользовательских ролей
- 14. Liferay настраиваемый портлет без крючка
- 15. Liferay - изменить портлет портала программно
- 16. Разрешение на портлет-ресурс Liferay
- 17. Настроить календарный портлет в Liferay
- 18. Liferay <портлет: actionURL>
- 19. Liferay | Я потерял портлет входа
- 20. Liferay Войти Портлет в Popup
- 21. Добавить JSP в портлет Liferay
- 22. Liferay Vaadin Портлет (ы) с различными версиями
- 23. Как отредактировать портлет или плагин в Liferay?
- 24. Где портлет статьи журнала в liferay?
- 25. Как использовать глобальный портлет в liferay?
- 26. В Liferay, может ли один портлет открыть отдельный портлет внутри нового диалогового окна AUI?
- 27. Как добавить крючок в портлет в liferay?
- 28. не удалось развернуть портлет войны в liferay
- 29. Liferay: не удалось добавить портлет из Dockbar
- 30. Как построить условный условный портлет в liferay