如果在Kotlin Maven插件中为空,则跳过

我们已经在我们最顶级的项目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> 

ATM,本项目中只有少数模块有Kotlin源代码。 (该项目大约有50个模块。)这个想法是,大多数最终将有Kotlin代码,我们不希望每个项目的基础上联系起来。 我们想配置一次,忘记它。

这个工作除了我们得到这个警告在大多数模块的构建:

 [INFO] Kotlin Compiler version 1.0.2 [WARNING] No sources found skipping Kotlin compile 

我们在JAR插件中也遇到了这个问题。 该插件有一个配置选项,可以让我们这样做:

 <configuration> <skipIfEmpty>true</skipIfEmpty> </configuration> 

这个插件的类似的警告关闭。 Kotlin编译器插件似乎没有任何这样的配置选项。

所以,我的问题是:

  1. 有没有我们忽略的配置选项?
  2. 我们是否应该以不同的方式配置Kotlin编译器插件以避免此警告?

TIA!

处理这种事情的默认方法是像通过pluginManagement在项目的父项中那样定义配置,防止它被所有模块继承,这是不正确的。 在那些使用Kotlin的模块中,您需要添加几行到pom文件:

 <build> <plugins> <plugin> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-maven-plugin</artifactId> </plugin> </plugins> </build> 

如果kotlin-maven插件包含这样的选项,我不能告诉你,因为我没有找到它的源代码,也没有存在一个Maven生成的网站,其中包含所有的默认和选项等是不是这种情况(不太好)..

或者其他解决方案是改变kotlin-maven-plugin拥有自己的生命周期,这意味着改变插件的代码…只是改变这些模块的<packaging>kotlin</packaging> …是原作者的工作做…

如果您需要为maven-jar-plugin添加选项<skipIfEmpty>..</skipIfEmpty> ,这听起来也是错误的…