2016-05-15 67 views
1

我们已经启用了科特林Maven插件,在我们最顶端的项目POM,像这样:则跳过空在科特林的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!

回答

1

处理这种事情的默认方法是通过pluginManagement来定义项目父项中的配置,这样可以防止它被所有模块继承,这是不正确的。除了其中使用科特林这些模块则需要几行添加到POM文件:

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

如果科特林 - Maven的插件包含了这样的选择,我不能告诉你,因为我没有找到它的源代码也不存在一个Maven生成的网站,其中包含所有的默认和选项等,这是不是(不太好)..插件有自己的生命周期,这意味着改变插件的代码...只是改变这些模块的<packaging>kotlin</packaging> ......这是原作者的工作...

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

+0

解决它。谢谢@khmarbaise。 –