Можно ли сказать 'groovyc' только для создания заглушек?(Совместная компиляция Java + Groovy + Kotlin) - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь получить совместную / смешанную компиляцию между всеми Java, Groovy и Kotlin.В настоящее время я работаю над теорией о том, что это возможно, если groovyc можно будет просто использовать в качестве первого шага для создания заглушек.

Может ли это?В противном случае, есть ли какие-либо указания на создание такой возможности из исходников Groovy?

Вот идея полной смешанной компиляции:

  1. Пусть Groovyc создаст Java-заглушки для всех своих классов.AFAIU, он делает это «вслепую», файл за файлом, не видя никаких других источников. (Это кикер, и о чем этот вопрос: пусть groovyc (или некоторая его часть) генерирует толькозаглушки).
  2. Пусть Kotlinc скомпилирует Kotlin-файлы, основываясь на типе Java-файлов для Java, и Java-заглушки для Groovy (добавив их в путь к классам kotlinc)
  3. ИмеютJavac компилирует Java-файлы, основываясь на типах Java-заглушек Groovy и файлах классов Kotlin (добавляя их в classpath javac или используя -sourcepath для Java-заглушек).
  4. Have Groovycскомпилировать Groovy-файлы, основываясь на типе файлов классов для Java, и файлы классов для Kotlin (добавив их в путь к классам groovyc).

1 Ответ

0 голосов
/ 13 декабря 2018

Используйте инструмент сборки, такой как Gradle или Maven.

Для них существует стандартная схема файлов проекта, которая определяет структуру каталогов и соглашения об именах.Вы поместите исходные файлы groovy в / src / groovy /, а исходные файлы java в / src / java / и аналогичные для kotlin.

Используйте выбранный инструмент для сборки, чтобы запустить каталог проекта и подготовить базовую конфигурацию сборки.,Если конфигурация сборки сообщает инструменту о наличии нескольких языков, они автоматически узнают друг о друге во время компиляции.И что еще более важно, если вы используете IDE, такую ​​как IntelliJ (даже бесплатная версия), редактор поймет конфигурацию сборки и узнает о нескольких языках и предложит рекомендации по импорту и завершение класса / метода.

Groovy вызовЯ использую Java каждый день, от Java до Groovy тоже возможно, но вам нужно понять, как работает Groovy в том смысле, что существует множество идиом Groovy, которые нельзя напрямую вызывать из Java, но стандартные классы работают отлично.

Аналогичные ограничения применяются для Kotlin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...