2015-09-06 45 views
0

陰影插件工作時,我試圖執行我的搖籃代碼:陰影的gradle項目文件不編譯

import com.github.jengelman.gradle.plugins.shadow.transformers.AppendingTransformer 

shadow { 
    transformer(AppendingTransformer) { 
     resource = 'META-INF/spring.handlers' 
    } 
    transformer(AppendingTransformer) { 
     resource = 'META-INF/spring.schemas' 
    } 
} 

正如我收到folloqing錯誤結果:

Could not find method transformer() for arguments [class com.github.jengelman.gradle.plugins.shadow.transformers.AppendingTransformer, [email protected]] on project ':ProjectX'. 

我失去了什麼?應該在哪裏定義'變壓器'功能?

+0

您使用的是什麼版本的shadow插件? – Boaz

回答

1

你的問題缺乏一些信息,但是從你粘貼的錯誤來看,它看起來像陰影擴展並不包含一個變換器方法(因此試圖在所有者對象 - 項目中找到它)。對我而言,這意味着您可能正在使用Shadow插件的最新版本(最新版本爲1.2.2版本),同時嘗試以某種舊式不支持的方式對其進行配置。

在新版本中,你應該通過

shadowJar { 
    transform(AppendingTransformer) { 
      resource = 'NOTICE' 
    } 
} 

配置關閉和不老notiation

shadow {} 

配置插件見here新的README文件,here舊的README文件。

+0

非常感謝Boaan,它現在編譯,但它並沒有真正做任何事情......,你有什麼想法,爲什麼? – Adi

+0

@Adi,你如何執行構建?我建議你閱讀新的README。你可能正在執行gradle build,README說要執行gradle shadowJar – Boaz

+0

是的Boaz你是對的,我正在調用錯誤的編譯器。你知道我怎樣才能從不同的項目調用shadowjar作爲依賴項?像這樣:compile project(':XYZ') – Adi