2014-01-09 43 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" 
    } 
    } 
}