2016-05-15 66 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。 –