2015-08-11 17 views
10

Я использую файл build.gradle собрать несколько папок на компьютере в папке активов моего приложения:AndroidStudio: добавить виртуальную папку в Gradle

sourceSets { 
    main { 
     assets.srcDirs = ['../someFolder/', 'src/main/assets'] 
    } 
} 

Это приводит к моей папке активов, имеющих файлы someFolder а «оригинальный» папка активов:

//The "physical" folders 

../someFolder 
    |- file1.txt 
    |- file2.txt 
    |- file3.txt 
src/main/assets 
    |- asset1.txt 

//...become this: 

assets 
    |- file1.txt 
    |- file2.txt 
    |- file3.txt 
    |- asset1.txt 

Как можно перенаправить пути в Gradle так, что моя папка актив содержит папку «SomeFolder» со всеми файлами из someFolder, например:

assets 
    |- someFolder 
    |--- file1.txt 
    |--- file2.txt 
    |--- file3.txt 
    |- asset1.txt 
+0

Виртуальная папка как папка, которая на самом деле не существует или виртуальная, поскольку мы можем «переопределить» это позже? –

+0

виртуальный как в «на самом деле не существует». – PhilLab

+1

Я не думаю, что это то, что может достичь только один градус. Если вы работаете на Linux-машине или Mac, вы можете работать с символическими ссылками. Должен быть способ запуска команды для создания символической ссылки из вашего источника в конфигурационную папку вашей целевой папки @ gradle с помощью задачи Exec https://docs.gradle.org/current/dsl/org.gradle.api.tasks. Exec.html –

ответ

1

1) Создать папку внутри проекта, как ваши внешние активы ./extAssets

sourceSets.main.assets.srcDirs = ['src/main/assets', './extAssets'] 

2) Ссылка все ваши внешние каталоги внутри этой папки

$ cd extAssets/ 
$ ln -s ../../someFolder/ someFolder 

В результате вы увидите

assets 
    |- someFolder 
    |--- file1.txt 
    |--- file2.txt 
    |--- file3.txt 
    |- asset1.txt 

без копирования файлов

+0

хорошая идея для Linux! К сожалению, он не является независимым от платформы (или выражать его по-другому: нет решения для Windows) – PhilLab

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