我有一个Java项目,该项目在Kotlin代码中合并了一些类。实际上有两个Kotlin文件,每个文件位于不同的文件夹中,并且每个文件包都不同。
进行mvn clean package
时,可以识别Kotlin文件A并将其编译到项目中,但是不能识别Kotlin文件B。
奇怪的是,B是在较早版本中编译的,但是我将一些Groovy文件转换为Java以避免使用Babel。这些新的Java文件引用了B中的类,正是它们的编译产生了错误。
我已经检查并仔细检查了包裹名称。为了查看Maven是否注意到B的文件夹,我什至将B中的数据类之一转换为Java,并将其保留在同一文件夹中。突然那个班级被认可了。
这是怎么回事?我有POM问题吗?
答案 0 :(得分:0)
我需要在Kotlin插件的部分下,将以下内容添加到我的POM中:
<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>
这是根据文档here来完成的。