Вот пять методов сглаживания для включения нескольких входных файлов, с документацией, извлеченной из класса CommandLineRunner
:
(1) Это разновидность техники Мука , с удалением флага --js
, который не нужен:
java -jar compiler.jar \
--js_output_file build/out.js `find ./src/*.js`
Из документов:
Имя флага --js
является необязательным, поскольку по умолчанию аргументы интерпретируются как файлы.
Это будет включать все .js
файлы в /src/
, но не будет включать файлы в подкаталогах /src/
.
(2) Аналогично 1 , но будет включать все .js
файлы в /src/
и все его подкаталоги :
java -jar compiler.jar \
--js_output_file build/out.js `find ./src/ -name '*.js'`
(3) Аналогично 2 , но использует xargs
:
find ./src/ -name '*.js' \
| xargs java -jar compiler.jar \
--js_output_file build/out.js \
--manage_closure_dependencies
Из документов:
Удобно использовать функцию дополнительных аргументов при использовании
Закрывающий компилятор в сочетании с find
и xargs
:
find MY_JS_SRC_DIR -name '*.js' \
| xargs java -jar compiler.jar --manage_closure_dependencies
Команда find
создаст список исходных файлов '* .js' в
каталог MY_JS_SRC_DIR
, а xargs
преобразует их
к одному разделенному пробелами множеству аргументов, которые добавляются к
java
команда для запуска компилятора.
Обратите внимание, что важно использовать
--manage_closure_dependencies
опция в этом случае, потому что
порядок, созданный find
, вряд ли будет правильно отсортирован с
уважение к goog.provide()
и goog.requires()
.
(4) v20140625
В выпуске добавлена поддержка группового символа **
(globstar), который рекурсивно
соответствует всем подкаталогам.
Например, это будет включать все .js
файлы в /src/
и все его подкаталоги:
java -jar compiler.jar \
--js_output_file build/out.js './src/**.js'
Подробнее здесь . Из документов:
Вы также можете использовать шаблоны шариков в стиле мини-матча. Например, используйте:
--js='**.js' --js='!**_test.js'
для рекурсивного включения всех js-файлов, которые не заканчиваются на _test.js
Из документов Java :
Следующие правила используются для интерпретации шаблонов глобуса:
- Символ
*
соответствует нулю или более символов компонента имени без пересечения границ каталога.
- Символы
**
соответствуют нулю или более символов, пересекающих границы каталога.
(5) v20140625
В выпуске также добавлена новая функция: если входной путь является каталогом, то все .js
файлы
в этом каталоге и все подкаталоги будут включены.
Например, это будет включать все .js
файлы в /src/
и все его подкаталоги:
java -jar compiler.jar \
--js_output_file build/out.js './src/'
Подробнее здесь .