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

时间:2016-05-15 19:26:57

标签: maven maven-plugin kotlin

我们在最顶级的项目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编译器插件似乎没有任何这样的配置选项。

所以,我的问题是:

  1. 我们忽略了这样的配置选项吗?
  2. 我们是否应该以不同方式配置Kotlin编译器插件以避免此警告?
  3. TIA!

1 个答案:

答案 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>,这听起来也错了......