2016-08-26 2 views
0

У меня есть структура проекта, как это (с использованием Gradle 2.11):Добавить Gradle ресурсов Unders пользовательского вывода реж

submodule1 
| 
- src 
    | 
    - main 
    | 
    - resources 
     | 
     - file1 
submodule2 
| 
- resources 
    | 
    - file2 
    - file3 

Я добавляю некоторые дополнительные вещи submodule1 «s resources через:

sourceSets { 
    main { 
     resources { 
     srcDir("../submodule2/resources") 
     } 
    } 
} 

Есть ли простой способ указать пользовательский путь вывода ресурсов из submodule2? В настоящее время, когда я jar, все файлы ресурсов file1, file2 и т. Д. Будут помещены в банку на верхнем уровне. Я хотел бы, чтобы файлы submodule1 оставались на верхнем уровне, а ресурсы submodule2 были помещены внутри банки под настраиваемый путь, то есть submodule2resources.

ответ

1

Необходимо отфильтровать файлы во время создания файла jar. Это делается в jar закрытии в build.gradle файла с использованием DSL. Проблема здесь заключается в том, что при добавлении набора источника и банки получают информацию о происхождении данного файла теряются - все файлы принадлежат submodule1 сейчас - значит, обходной путь здесь необходим:

apply plugin: 'java' 

project.ext.sm2Resources = project.file("../sm2/src/main/resources") 

sourceSets { 
    main { 
     resources { 
      srcDir(sm2Resources) 
     } 
    } 
} 

jar { 
    eachFile { f -> 
     if(new File(sm2Resources, f.file.name).exists()) { 
     f.path = "sm2/$f.name" 
     } 
    } 
} 

Проверьте demo.

Смежные вопросы