Qui ci sono cinque globbing tecniche per includere più file di input, con la documentazione estratto dalla classe CommandLineRunner
:
(1) Questa è una variazione di muka's technique, rimozione del flag --js
, che non è necessario:
java -jar compiler.jar \
--js_output_file build/out.js `find ./src/*.js`
Dalla documentazione:
Il nome --js
bandiera è facoltativo, perché args sono interpretati come file per impostazione predefinita.
Ciò include tutti i file in .js
/src/
, ma non includerà tutti i file nelle sottodirectory di /src/
.
(2) Simile al , ma includerà tutti .js
file in /src/
e tutte le sue sottodirectory:
java -jar compiler.jar \
--js_output_file build/out.js `find ./src/ -name '*.js'`
(3) simile a , ma utilizza xargs
:
find ./src/ -name '*.js' \
| xargs java -jar compiler.jar \
--js_output_file build/out.js \
--manage_closure_dependencies
Dalla documentazione:
è conveniente sfruttare argomenti integrativi presentano quando si utilizza il compilatore chiusura in combinazione con find
e xargs
:
find MY_JS_SRC_DIR -name '*.js' \
| xargs java -jar compiler.jar --manage_closure_dependencies
Il find
comando produrrà un elenco di file di origine '.js *' nel il 012.303.061.730.directory mentre xargs
converte loro ad un unico set delimitato da spazi di argomenti che vengono aggiunti al comando java
per eseguire il compilatore.
Nota che è importante utilizzare l'opzione --manage_closure_dependencies
in questo caso perché l'ordine prodotto da find
è improbabile che possa essere ordinato in modo corretto con rispetto al goog.provide()
e goog.requires()
.
(4) Il rilascio v20140625 aggiunto il supporto per la (globstar) jolly, che in modo ricorsivo partite tutte le sottodirectory **
.
Per esempio, questo includerà tutti i file in .js
/src/
e tutte le sue sottodirectory:
java -jar compiler.jar \
--js_output_file build/out.js './src/**.js'
Maggiori informazioni here. Da i documenti:
È anche possibile utilizzare modelli glob di stile minimatch. Ad esempio, l'uso:
--js='**.js' --js='!**_test.js'
per includere ricorsivamente tutti i file js che non terminano in _test.js
Dal Java docs:
Le seguenti regole vengono utilizzate per interpretare i modelli glob:
- Il carattere
*
corrisponde a zero o più caratteri di un componente nome senza attraversare i confini delle directory.
- I caratteri
**
corrispondono a zero o più caratteri che attraversano i limiti delle directory.
(5) Il rilascio v20140625 anche aggiunto una nuova funzionalità: se il percorso di ingresso è una directory, allora tutti i file .js
in tale directory e tutte le sottodirectory sarà incluso.
Per esempio, questo includerà tutti i file in .js
/src/
e tutte le sue sottodirectory:
java -jar compiler.jar \
--js_output_file build/out.js './src/'
Maggiori informazioni here.
A proposito, ho scritto uno script per farlo. Ti consiglio di fare lo stesso. –