Gradle:Jar任务不包含扩展名未知的文件

时间:2015-07-20 14:02:21

标签: java jar gradle build.gradle

我正在尝试为我的自定义编程语言构建library.jar。该库包含Java类和用该语言编写的类。我已经设法编译编译器,在这些类上运行它并在名为dbin的文件夹中生成输出文件。

- src
  - ...
- build
  - ...
- dbin
  - Foo.class
  - Custom.dyo   // <- the new file type
- build.gradle

我想要实现的是将dbin目录中的所有文件复制到Jar文件中,并尝试使用以下脚本:

task buildLib(type: Jar, dependsOn: [ 'classes', 'compileDyvilLibrary' ]) {
    from sourceSets.library.output

    // Include Compiler Output
    from fileTree(dir: 'dbin', includes: [ '**/*.class', '**/*.dyo' ])

    baseName = 'dyvil-library'
}

问题在于虽然明确包含了它,但jar文件不包含任何.dyo个文件。

1 个答案:

答案 0 :(得分:0)

localhost:8080行在配置时执行(即在任何任务运行之前)如果在from实例化时指定的目录位置中不存在这些文件,那么它将不包含任何文件。

您可以尝试通过fileTree方法进行懒惰评估来解决此问题:

from

您可能还想尝试这种语法:

from { fileTree(dir: 'dbin', includes: [ '**/*.class', '**/*.dyo' ]) }