【问题标题】:Gradle: Jar Task doesn't include Files with unknown extensionsGradle:Jar 任务不包括具有未知扩展名的文件
【发布时间】:2015-07-20 14:02:20
【问题描述】:

我正在尝试为我的自定义编程语言构建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文件。

【问题讨论】:

    标签: java jar gradle build.gradle


    【解决方案1】:

    from 行在配置时执行,(即在运行任何任务之前)如果在实例化 fileTree 时指定的 dir 位置中不存在文件,则它将不包含任何文件。

    您可以尝试通过使from 方法执行惰性求值来解决此问题:

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

    您可能还想尝试以下语法:

    from ('dbin') {
        include '**/*.class'
        include '**/*.dyo'
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 2013-06-02
      • 2020-02-16
      相关资源
      最近更新 更多