问题标签 [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.
gradle - 我可以在 gradle 项目中有一个备用的主源集吗?
我正在编写一个训练任务,其中包含主源集中的一组测试和代码。我还想在一个单独的 sourceSet 中提供一个示例答案,它可以与一个单独的任务一起运行。有没有办法在两个不同的主要源集上运行相同的测试集?
gradle - Kotlin:测试中的 java.lang.NoSuchMethodError
是否可以在不同的源集中使用 Kotlin 包函数和包属性?当我尝试这样做时,我已经NoSuchMethodError
抛出了。
例子
我有带有 Kotlin 代码和两个源集的 Gradle 项目,main
以及test
. 在main
中,我在其中一个文件中有以下代码:
在test
我尝试使用payloadSplitter
以下代码访问:
而正是在payloadSplitter
访问的第一行,在运行时我得到
其他全局变量和函数也test
因相同的错误而无法访问。
UPD Kotlin 团队解释了这个问题并在这里宣布了修复。
java - Android Gradle 方法添加源集
目前我正在开发一个带有 gradle 的应用程序,sourcesets
对于一些不同的风格,我有很多不同的地方。我sourcesets
以build.gradle
以下方式添加:
因为我有很多这样的块,build.gradle
所以我想知道是否有可能简单地调用一个以sourcesets
为参数的函数并将其添加到java.srcDirs
. 例如这样的:
即使方法主体不是 gradle android-tag 的一部分,这是否可能?
gradle - Gradle sourceSet 依赖于另一个 sourceSet
这个问题类似于使一个源集依赖于另一个
除了主要的 SourceSet,我还有一个 testenv SourceSet。testenv SourceSet 中的代码引用了主代码,因此我需要将主 SourceSet 添加到 testenvCompile 配置中。
这不起作用,因为您不能直接将 sourceSets 添加为依赖项。推荐的方法是:
但这不适用于 eclipse,因为当我清理 gradle build 文件夹时,eclipse 无法再编译,因为它依赖于 gradle build。此外,如果我更改主要代码,我必须在 gradle 中重建项目,以使更改在 eclipse 中生效。
如何正确声明依赖项?
编辑:
这个
适用于主要来源,但是因为我现在引用了 .java 文件,所以我缺少从 Annotation-Processor 生成的类:(
java - Gradle:每个平台构建的 includeFlat 和 sourceSets 依赖关系
我是 Java 世界和 Gradle 的新手。我制作了一个支持多种平台(Android、Linux 和 Windows)的 JSerial 库。
为了能够选择我的目标平台,我在我的 JSerial gradle 文件中定义了一些 sourceSet:
默认的main
sourceSets 构建通用接口等。然后windows
sourceSet 将构建 windows 实现(对于 Linux 和 Android 也是如此)。
我创建了一个使用该库并使用 gradle 依赖它的项目includeFlat
。这是我的 gradle 文件的依赖部分:
这行得通。但我想依赖“windows”sourceSet,因为这个项目是一个windows应用程序。我尝试了以下方法:
但它不起作用,我有以下错误:
在 SourceSet 容器上找不到属性“windows”。
怎么了 ?
PS:如果有更好的方法可以在不使用 sourceSets 的情况下做我正在尝试的事情,请告诉我!
java - Gradle sourceSets 基于 gradle.settings
我想根据项目的 settings.gradle 中定义的自定义设置有条件地构建我的 Java 库的一些功能。
例子:
构建.gradle
设置.gradle
java - 具有多个源集的 Gradle 编译 jar
我想从 gradle jar 文件构建,包括来自多个 sourceSets 的源。除了 main 之外,我还使用注释处理中的类生成了源集。
如何从主要 sourceSet 中排除 jar 特定包并从生成的源集中包含特定包?
当尝试将其添加到 jar 时,如下所示:
我收到错误消息:在 SourceSet 容器上找不到“生成”属性。
然后我尝试将其定义为:
但是当generatedClasses
在生成的类中找不到执行导入时
gradle - Gradle:在程序集中排除不同的资源文件
摇篮 2.5
我有几个资源包文件。其中一些我想从打包到目标 jar 文件中排除,因为它们不包含尚未授权的翻译。
根据文档和示例,我发现我有这个指令:
并通过打印出主要资源的文件集来断言该指令被正确解释:
运行“gradle clean assembly”时,资源集的打印结果确实是我所期望的(排除的文件未在此处列出),但 build/resource/ 文件夹仍然包含文件,并且它们也存在于目标 jar 中.
我错过了什么?哪个任务负责根据哪个源集将资源文件复制到构建目录?
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 声明它,以便它不应该被另一个覆盖。