Я только начал свой первый проект Kotlin, используя Maven.
Когда я начал разбивать проект на несколько модулей maven, я получил много странных ошибок компиляции от Kotlin, которые не имеют для меня никакого смысла.
Один из примеров этого класса:
class ConfigurationException(msg: String) : Exception(msg)
, где я получаю ошибку компилятора, говорящую о том, что
[INFO] --- kotlin-maven-plugin:1.2.71:compile (compile) @ ticketmaster-cli-configuration ---
[ERROR] /home/matthias/dev/ticketmaster/ticketmaster-cli-configuration/src/main/kotlin/de/mh/ticketmaster/cli/config/ConfigurationException.kt: (3, 45) None of the following functions can be called with the arguments supplied:
public constructor Exception(p0: String!) defined in java.lang.Exception
public constructor Exception(p0: Throwable!) defined in java.lang.Exception
(таких ошибок больше сотни)
Раньше он прекрасно компилировался как простой проект maven без субмодулей, но перестал работать, как только я представил субмодули.Кто-нибудь видел что-то подобное?
вот раздел сборки из родительского pom:
<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
<plugins>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>1.2.71</version>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<dependencies>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-surefire-provider</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
Подмодули просто наследуют эту конфигурацию (раздел сборки не определен), и оба зависят от времени выполнения kotlin в той же версии.