2014-01-09 45 views
0

我想在我的項目中使用ContentProvider合同類來構建jar文件中的單獨工件。要構建這個罐子我使用的下一個任務:ContentProvider合同的Gradle配置

task contractsJar(type: Jar) { 
    from android.applicationVariants.release.javaCompile.destinationDir 
    includes "contract classes filter" 
    into "$buildDir/libs" 
} 

contractsJar.dependsOn 'compileReleaseJava' 

但基本路徑在系統根目錄此任務生成JAR(適用於Mac OS X是/Users/myuser...)。那麼我應該怎麼做才能在項目根目錄下使用基本路徑創建「正確的」jar?

回答

0

有兩個問題:

  1. android.applicationVariants.release不會在一開始就存在的,所以我們應該在一些奇怪的方式使用DomainObjectCollection.all()
  2. into作品 - 如果我們使用它,然後罐子將具有系統根作爲鹼夾

所以結果配置:

task contractsJar(type: Jar, dependsOn: 'compileReleaseJava') 

android.applicationVariants.all() { variant -> 
    if (variant.name == "release") { 
    contractsJar { 
     from variant.javaCompile.destinationDir 
     include "filter pattern (ANT style)" 
     baseName="contracts" 
    } 
    } 
}