问题标签 [source-sets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
226 浏览

gradle - 我可以在 gradle 项目中有一个备用的主源集吗?

我正在编写一个训练任务,其中包含主源集中的一组测试和代码。我还想在一个单独的 sourceSet 中提供一个示例答案,它可以与一个单独的任务一起运行。有没有办法在两个不同的主要源集上运行相同的测试集?

0 投票
3 回答
7135 浏览

gradle - Kotlin:测试中的 java.lang.NoSuchMethodError

是否可以在不同的源集中使用 Kotlin 包函数和包属性?当我尝试这样做时,我已经NoSuchMethodError抛出了。


例子

我有带有 Kotlin 代码和两个源集的 Gradle 项目,main以及test. 在main中,我在其中一个文件中有以下代码:

test我尝试使用payloadSplitter以下代码访问:

而正是在payloadSplitter访问的第一行,在运行时我得到


其他全局变量和函数也test因相同的错误而无法访问。


UPD Kotlin 团队解释了这个问题并在这里宣布了修复。

0 投票
0 回答
559 浏览

java - Android Gradle 方法添加源集

目前我正在开发一个带有 gradle 的应用程序,sourcesets对于一些不同的风格,我有很多不同的地方。我sourcesetsbuild.gradle以下方式添加:

因为我有很多这样的块,build.gradle所以我想知道是否有可能简单地调用一个以sourcesets为参数的函数并将其添加到java.srcDirs. 例如这样的:

即使方法主体不是 gradle android-tag 的一部分,这是否可能?

0 投票
1 回答
5330 浏览

gradle - Gradle sourceSet 依赖于另一个 sourceSet

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

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

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

但这不适用于 eclipse,因为当我清理 gradle build 文件夹时,eclipse 无法再编译,因为它依赖于 gradle build。此外,如果我更改主要代码,我必须在 gradle 中重建项目,以使更改在 eclipse 中生效。

如何正确声明依赖项?

编辑:

这个

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

0 投票
1 回答
841 浏览

java - Gradle:每个平台构建的 includeFlat 和 sourceSets 依赖关系

我是 Java 世界和 Gradle 的新手。我制作了一个支持多种平台(Android、Linux 和 Windows)的 JSerial 库。

为了能够选择我的目标平台,我在我的 JSerial gradle 文件中定义了一些 sourceSet:

默认的mainsourceSets 构建通用接口等。然后windowssourceSet 将构建 windows 实现(对于 Linux 和 Android 也是如此)。

我创建了一个使用该库并使用 gradle 依赖它的项目includeFlat。这是我的 gradle 文件的依赖部分:

这行得通。但我想依赖“windows”sourceSet,因为这个项目是一个windows应用程序。我尝试了以下方法:

但它不起作用,我有以下错误:

在 SourceSet 容器上找不到属性“windows”。

怎么了 ?

PS:如果有更好的方法可以在不使用 sourceSets 的情况下做我正在尝试的事情,请告诉我!

0 投票
1 回答
853 浏览

java - Gradle sourceSets 基于 gradle.settings

我想根据项目的 settings.gradle 中定义的自定义设置有条件地构建我的 Java 库的一些功能。

例子:

构建.gradle

设置.gradle

0 投票
0 回答
167 浏览

android - 使用定制的酸辣酱打造风味

我的项目包含多个风味和主文件夹,当我使用主文件夹中的特定风味 gradle 使用值构建项目时,其中包含通用逻辑,即使该值存在于该风味中

请帮忙

项目结构

  • 主要项目
    • 源代码
      • 主要 (主要项目)
        • 爪哇
      • 风味1
        • java/Appconstant.java
      • 风味2
        • java/Appconstant.java
      • ...

build.gradle 文件

应用结构

在此处输入图像描述

根据建议编辑修改的项目结构,但现在在 Main 中不可见风味类

0 投票
0 回答
975 浏览

java - 具有多个源集的 Gradle 编译 jar

我想从 gradle jar 文件构建,包括来自多个 sourceSets 的源。除了 main 之外,我还使用注释处理中的类生成了源集。

如何从主要 sourceSet 中排除 jar 特定包并从生成的源集中包含特定包?

当尝试将其添加到 jar 时,如下所示:

我收到错误消息:在 SourceSet 容器上找不到“生成”属性。

然后我尝试将其定义为:

但是当generatedClasses在生成的类中找不到执行导入时

0 投票
1 回答
1987 浏览

gradle - Gradle:在程序集中排除不同的资源文件

摇篮 2.5

我有几个资源包文件。其中一些我想从打包到目标 jar 文件中排除,因为它们不包含尚未授权的翻译。

根据文档和示例,我发现我有这个指令:

并通过打印出主要资源的文件集来断言该指令被正确解释:

运行“gradle clean assembly”时,资源集的打印结果确实是我所期望的(排除的文件未在此处列出),但 build/resource/ 文件夹仍然包含文件,并且它们也存在于目标 jar 中.

我错过了什么?哪个任务负责根据哪个源集将资源文件复制到构建目录?

0 投票
1 回答
613 浏览

android - 有没有办法为 gradle 中的每个 buildType 设置不同的“androidTest.java.srcDirs”?

我需要为每种构建类型执行 android 测试用例。所以“androidTest.java.srcDirs”对于每种构建类型都有不同的值。

对于 buildType 1 :

androidTest.java.srcDirs = ['tests/intrumentation1']

对于 buildType 2 :

androidTest.java.srcDirs = ['tests/intrumentation2']

出于不同的原因,我不想在这里使用风味。debug { androidTest.java.srcDirs = ['tests/debug'] } alpha { androidTest.java.srcDirs = ['tests/alpha'] } 在这种情况下,第一个总是被下一个覆盖。

任何想法如何为每个 buildType 声明它,以便它不应该被另一个覆盖。