Tra*_*cer 6 maven-plugin maven kotlin
我们在最顶层的项目 POM 中启用了 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>process-test-sources</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
ATM,这个项目中只有少数模块有 Kotlin 源代码。(该项目大约有 50 个模块。)我们的想法是大多数最终都会有 Kotlin 代码,我们不想在每个项目的基础上进行连接。我们想配置一次,然后忘记它。
这有效,除了我们在大多数模块的构建中收到此警告:
[INFO] Kotlin Compiler version 1.0.2
[WARNING] No sources found skipping Kotlin compile
Run Code Online (Sandbox Code Playgroud)
我们的 JAR 插件也有这个问题。该插件有一个配置选项,允许我们这样做:
<configuration>
<skipIfEmpty>true</skipIfEmpty>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这个关闭那个插件的类似警告。不过,Kotlin 编译器插件似乎没有任何此类配置选项。
所以,我的问题是:
蒂亚!
处理此类事情的默认方法是像在项目的父级中一样定义配置,通过pluginManagement它可以防止所有不正确的模块继承它。与那些使用 Kotlin 的模块相比,您需要在 pom 文件中添加几行:
<build>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
如果 kotlin-maven-plugins 包含这样的选项,我无法告诉你,因为我没有找到它的源代码,也不存在包含所有默认值和选项等的 Maven 生成的站点。但事实并非如此(其实不太好)..
或者另一种解决方案是更改具有自己生命周期的 kotlin-maven-plugin,这意味着更改插件的代码...并且只需更改<packaging>kotlin</packaging>这些模块的...这是原作者要做的工作...
如果您需要添加<skipIfEmpty>..</skipIfEmpty>maven-jar-plugin 的选项,这听起来也是错误的......
| 归档时间: |
|
| 查看次数: |
3768 次 |
| 最近记录: |