Maven не распознает некоторые классы Kotlin в проекте Java - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть проект Java, который включает в себя некоторые классы в коде Kotlin. На самом деле есть два файла Kotlin, каждый в разных папках и каждый в отдельном пакете.

При выполнении mvn clean package файл Kotlin A распознается и компилируется в проект, а файл Kotlin B - нет.

Как ни странно, B был скомпилирован ранее, но я преобразовал некоторые файлы Groovy в Java, чтобы избежать Babel . Эти новые Java-файлы ссылаются на классы в B, и именно их компиляция вызывает ошибки.

Я проверил и дважды проверил имена пакетов. Чтобы увидеть, заметила ли папка B Maven, я даже преобразовал один из классов данных в B в Java и оставил его в той же папке. Внезапно этот класс был признан.

Что здесь происходит? У меня проблема с POM?

1 Ответ

0 голосов
/ 29 апреля 2019

Мне нужно было добавить следующее в мой POM в разделе для плагина Kotlin:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.5.1</version>
    <executions>
        <!-- Replacing default-compile as it is treated specially by maven -->
        <execution>
            <id>default-compile</id>
            <phase>none</phase>
        </execution>
        <!-- Replacing default-testCompile as it is treated specially by maven -->
        <execution>
            <id>default-testCompile</id>
            <phase>none</phase>
        </execution>
        <execution>
            <id>java-compile</id>
            <phase>compile</phase>
            <goals> <goal>compile</goal> </goals>
        </execution>
        <execution>
            <id>java-test-compile</id>
            <phase>test-compile</phase>
            <goals> <goal>testCompile</goal> </goals>
        </execution>
    </executions>
</plugin>

Это было согласно документации здесь .

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