我们在最顶级的项目POM中启用了Kotlin Maven插件,如下所示:
background-size:cover;
ATM,这个项目中只有少数模块有Kotlin源代码。 (该项目大约有50个模块。)我们的想法是,大多数人最终会拥有Kotlin代码,而且我们不希望每个项目都需要连接。我们想要配置一次,忘了它。
除了我们在大多数模块的构建中收到此警告之外,这是有效的:
<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>
我们也遇到了JAR插件的这个问题。该插件有一个配置选项,允许我们这样做:
[INFO] Kotlin Compiler version 1.0.2
[WARNING] No sources found skipping Kotlin compile
这个关闭插件的类似警告。 Kotlin编译器插件似乎没有任何这样的配置选项。
所以,我的问题是:
TIA!
答案 0 :(得分:2)
处理此类事情的默认方法是通过pluginManagement
定义项目父项中的配置,这样可以防止所有不正确的模块继承该配置。在那些使用Kotlin的模块中,你需要在pom文件中添加几行:
<build>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如果kotlin-maven-plugins包含这样的选项,我无法告诉你原因我没有找到它的源代码,也不存在包含所有默认值和选项的maven生成的网站情况并非如此(不太好)..
或者另一个解决方案是改变拥有它自己的生命周期的kotlin-maven-plugin,这意味着改变插件的代码......并且只需更改这些模块的<packaging>kotlin</packaging>
......这对原作者来说是有用的......
如果您需要为maven-jar-plugin添加选项<skipIfEmpty>..</skipIfEmpty>
,这听起来也错了......