我有一个关于kotlin-maven插件的问题:如何确定编译顺序?我的意思是:kotlin编译器必须先来吗?它能理解java代码吗?java编译器不理解kotlin代码,所以我猜它会检查字节代码,但为此,必须存在kotlin的字节码,因此有人必须确定kotline编译器必须在javac之前编译其代码.
示例:我有依赖于Kotlin B类的Java A类,B也依赖于A.
我是否必须在maven插件中通过在java maven编译器之前声明它来手动执行某些操作?
Ily*_*lya 13
Kotlin编译器可以解析java源代码,因此您可以在kotlin代码中引用java类,即使这些类尚未编译.
在Kotlin编译器编译kotlin代码之后,Java编译器可以编译那些将编译的kotlin类作为依赖项的java类.
所以,回答你的问题,是的 - 必须在混合kotlin和java源的项目中的java编译器插件之前执行Kotlin编译器插件.这是通过在构建的早期阶段安排执行来实现的,即process-sources.
以下是混合Kotlin-Java maven模块的kotlin maven插件配置示例:
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |