1

我正在使用 Gradle 的 SourceSets 概念作为声明 JavaScript 源的一种方式,但是,我不太想办法让源以给定的顺序声明。我想要的是这样的:

javascript.source {
    custom {
        js {
            srcDir "src/js"
            include "file2.js", "file1.js"
        }
    }
}

按照我声明的顺序提供文件集合。

我知道我可以用 FileTree 来做到这一点,但我觉得我缺少一些东西来使这个工作与声明 SourceSets 一起工作。

如果这是不可能的,我应该对订购的来源使用什么?

编辑:请注意,我需要依赖顺序,因为我正在使用 JavaScript。

4

2 回答 2

2

我可以建议您尝试声明第二个sourceSet包含file1.js并使您的原件sourceSet依赖它。大致如此:

javascript.source {
    custom2 {
        js {
            srcDir "src/js2"
            include "file2.js"
        }
    }
    custom {
        js {
            srcDir "src/js"
            include "file1.js"
        }
        compileClasspath += custom2.outputs
    }
}

不过,不确定您使用的插件是否可以做到这一点。但希望你明白这一点。

我猜在像 Gradle 这样的声明式系统中,指定顺序的唯一方法是声明不同部分之间的依赖关系,并让 Gradle 为您计算顺序。

于 2012-07-01T12:29:57.433 回答
0

根据定义,a sourceSetin gradle 是源文件和资源文件的逻辑分组。(不暗示排序)

例如,对于 Java 插件,这意味着当 gradle 尝试编译您的应用程序时,它知道在哪里可以找到编译过程的源文件。

我不确定您到底要完成什么。你在这里使用任何特殊的插件吗?为什么需要文件的特殊顺序?请解释您正在尝试做的事情的总体情况。我很确定这sourceSet对你没有帮助。

于 2012-06-30T11:56:56.000 回答