2013-04-07 58 views
2

我有時用apply from: 'some/common/config.gradle',想一個簡單的方法來立即配置相關的插件,如果它已經存在或觀看要添加並在以後對其進行配置。我可以做我想做的事情,但是由於我最終將配置複製/粘貼到兩個位置,似乎有點麻煩。下面是我想要的,但我想知道是否有更好的方法。有沒有一種簡單的方法來配置一個Gradle插件,如果它存在立即配置,或者如果它被添加了以後?

def configured = false; 

if(plugins.hasPlugin(ApplicationPlugin)) { 
    run.classpath.add(configurations.jfxrt) 

    startScripts { 
     mainClassName = "com.javafx.main.Main" 

     doLast { 
      logger.warn(":${project.name}:startScripts:!! WARNING !!" + 
        " Replaced mainClassName with com.javafx.main.Main") 
     } 
    } 

    configured = true 
} 

else { 
    plugins.whenPluginAdded { plugin -> 
     if(plugins.hasPlugin(ApplicationPlugin) && !configured) { 
      run.classpath.add(configurations.jfxrt) 

      startScripts { 
       mainClassName = "com.javafx.main.Main" 

       doLast { 
        logger.warn(":${project.name}:startScripts:!! WARNING !!" + 
          " Replaced mainClassName with com.javafx.main.Main") 
       } 
      } 

      configured = true 
     } 
    } 
} 

回答

3

達到此目的的方法是plugins.withType(ApplicationPlugin) { ... }

+0

是的,這正是我想要的。這就是我認爲我應該通過閱讀API來做的事情,但是當我嘗試它時,我一定在某個地方犯了一個愚蠢的錯字。感謝您爲我清理它。 – 2013-04-07 13:28:09

相關問題