小编Adr*_*c55的帖子

Gradle sourceSet依赖于另一个sourceSet

此问题类似于使一个源集依赖于另一个

除了主要的SourceSet外,我还有一个testenv SourceSet。testenv SourceSet中的代码引用了主要代码,因此我需要将主要SourceSet添加到testenvCompile配置中。

sourceSets {
  testenv
}

dependencies {
  testenvCompile sourceSets.main
}
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为您不能直接将sourceSets添加为依赖项。推荐的方法是:

sourceSets {
  testenv
}

dependencies {
  testenvCompile sourceSets.main.output
}
Run Code Online (Sandbox Code Playgroud)

但这在eclipse上无法正常工作,因为当我清理gradle build文件夹时,eclipse无法再编译,因为它依赖于gradle build。另外,如果更改主代码,则必须重新构建项目以使更改在Eclipse中生效。

如何正确声明依赖关系?

编辑:

这个

sourceSets {
  testenv
}

dependencies {
  testenvCompile files(sourceSets.testenv.java.srcDirs, sourceSets.testenv.resources.srcDirs)
}
Run Code Online (Sandbox Code Playgroud)

适用于主要来源,但是因为我现在引用.java文件,所以我缺少了Annotation-Processor中生成的类:(

dependencies gradle source-sets

5
推荐指数
1
解决办法
1855
查看次数

标签 统计

dependencies ×1

gradle ×1

source-sets ×1