编辑口味和路径:
目前我有:
sourceSets.whenObjectAdded {
sourceSet ->
def sourceData = rootProject.ext[sourceSet.name]
sourceSet.java.srcDirs = sourceData.javaDirRelease
}
ext是一个文件,其中所有特定于ProductFlayer的配置都是这样定义的:
ext{
flavor1 = [
javaDirRelease : ['src/pathToJavaReleaseFiles']
javaDirDebug : ['src/pathToJavaDebugFiles']
]
}
sourceSets {
flavor1{}
}
sourceSet.debug.java.srcDirs = 'src/pathToJavaDebugFiles'
sourceSets {
flavor1{
def flavorData = rootProject.ext['flavor1']
release {
java.srcDirs = flavorData.javaDirRelease
}
debug {
java.srcDirs = flavorData.javaDirDebug
}
}
}
然而,我真的希望动态添加,这样我仍然可以保持我的配置文件完整。我的构建配置非常复杂,并不像这里描述的那么简单,因此我不需要建议将源文件放入文件夹SRC/Flavor1Debug中,因为这些资源也来自其他productFlavors,所以这不起作用。
我想我明白了。我首先要说的是,这不是一个很好的设置,你真的应该寻找一个更标准的设置。
因此,对于解决方案,为了动态地读取风味源,我建议将ext结构移到如下所示:
ext {
sources = [
flavor1Debug : ['src/pathToJavaReleaseFiles']
flavor1Release : ['src/pathToJavaDebugFiles']
]
}
这使您可以读取源路径并迭代project.ext.sources
中的键和值。
applicationVariants.all { variant ->
def extraSources = project.ext.sources.get(variant.name)
if (extraSources != null) {
def extraSourceFiles = extraSources.collect { project.file(it) }
def sourceSet = variant.sourceSets.find { it.name == variant.name }
sourceSet.java.srcDir extraSourceFiles
def dummyTask = project.task("register${variant.name}ExtraSourcesTask")
variant.registerJavaGeneratingTask(dummyTask, extraSourceFiles)
}
}
我想知道如何在Gradle中向特定的ProductFraile和buildType添加依赖关系。例如,我有ProductFlavel和构建类型,如何添加对任务的依赖项? 或: 这里没有错误,但任务是针对每一种风格和构建类型执行的,非常混乱。
我是新的gradle和想使用gradle android插件的口味,构建类型和自定义源集。使用flavors和buildtypes构建works find。不幸的是,我有一个遗留的项目目录结构,所以我必须为buildTypes定制res目录。 buildtype的附加资源(基本上是一些字符串配置值)似乎不会合并到构建中,也不会替换主树中的资源键。 以前有人问过这个问题,我知道有Gradle pro
coming soon。。。。= = 对于Gradle的task(DefaultTask,JavaCompile,Copy,Zip),请参考Gradle文档。
这个问题类似于使一个源集依赖于另一个源集 这不起作用,因为您不能直接将源集添加为依赖项。建议的方法是: 但是这在eclipse中不能正常工作,因为当我清理gradle build文件夹时,eclipse不能再编译了,因为它依赖于gradle build。此外,如果我更改了主代码,我必须在gradle中重新构建项目,以便更改在Eclipse中生效。 如何正确声明依赖项? 这个 适用于主源代码,但由于
我在Gradle.properties中使用sourceCompatibility=1.7,Gradle JVM(设置,Gradle,Intellij IDEA)是1.8.0_171和 在大楼里。 当我运行构建任务(tasks->build->build Intellij IDEA)时,我在compileJava任务期间得到“错误:不兼容类型:推断的类型不符合等式约束”。 如果我将Gradle J
我正在编写使用webendpoint在junit上运行测试的web服务,因此我必须将所有测试保存在源代码中。问题是,我想要从IDEA和命令行直接运行测试,而最后一个我已经塞住了。 如何通过“Gradle Test”在sources文件夹(src/main/java)中运行测试?我和gradle不是一家人,但我试着用 但是它打破了使用IDEA的项目导入,My2016.1.1有时不能创建两个具有相同内