Hier sind fünf Globbing Techniken für mehrere Eingabedateien einschließlich, mit Dokumentation aus der CommandLineRunner
Klasse extrahiert:
(1) Dies ist eine Variante von muka's technique, Entfernen der --js
Flagge, die nicht benötigt wird:
java -jar compiler.jar \
--js_output_file build/out.js `find ./src/*.js`
Aus der Dokumentation:
Der --js
Flagge Name ist optional, da args als Dateien standardmäßig interpretiert werden.
Dadurch werden alle .js
Dateien in /src/
, schließen ein, aber werden alle Dateien in einem Unterverzeichnis von /src/
nicht enthalten.
(2) Ähnlich , sondern umfassen alle .js
Dateien in /src/
und alle Unterverzeichnisse:
java -jar compiler.jar \
--js_output_file build/out.js `find ./src/ -name '*.js'`
(3) Ähnlich , verwendet aber xargs
:
find ./src/ -name '*.js' \
| xargs java -jar compiler.jar \
--js_output_file build/out.js \
--manage_closure_dependencies
Aus der Dokumentation:
Es ist bequem, die zusätzlichen Argumente verfügen bei Verwendung des Closure Compiler in Kombination mit find
und xargs
zu nutzen:
find MY_JS_SRC_DIR -name '*.js' \
| xargs java -jar compiler.jar --manage_closure_dependencies
Die find
Befehl wird eine Liste von '* .js' Quelldateien in dererzeugenVerzeichnis, während xargs
wandelt sie in eine einzelne, durch Leerzeichen getrennte Reihe von Argumenten, die an den java
Befehl zum Ausführen des Compilers angehängt werden.
Beachten Sie, dass es wichtig ist, die --manage_closure_dependencies
Option in diesem Fall zu verwenden, da die von find
hergestellt, um es unwahrscheinlich ist, richtig zu goog.provide()
und goog.requires()
mit Respekt sortiert werden.
(4) Die v20140625 Version hinzugefügt Unterstützung für die **
(globstar) Platzhalter, die rekursiv Einstimmungen alle Unterverzeichnisse.
Zum Beispiel wird diese umfassen alle .js
Dateien in /src/
und alle Unterverzeichnisse:
java -jar compiler.jar \
--js_output_file build/out.js './src/**.js'
Mehr Infos here. Aus der Dokumentation:
Sie können auch Minimatch-Stil Glob Patterns verwenden. Verwenden Sie zum Beispiel:
--js='**.js' --js='!**_test.js'
rekursiv alle js-Dateien einschließen, die nicht in _test enden.js
Vom Java docs:
Die folgenden Regeln werden verwendet glob Muster zu interpretieren:
- Der
*
Zeichen entspricht null oder mehr Zeichen eines Namens Komponente ohne Verzeichnisgrenzen zu überqueren.
- Die Zeichen
**
stimmen mit null oder mehr Zeichen überein, die Verzeichnisgrenzen überschreiten.
(5) Die v20140625 Version hinzugefügt auch ein neues Feature: Wenn der Eingangspfad ein Verzeichnis ist, dann werden alle Dateien .js
in diesem Verzeichnis und alle Unterverzeichnisse enthalten sein.
Zum Beispiel wird diese umfassen alle .js
Dateien in /src/
und alle Unterverzeichnisse:
java -jar compiler.jar \
--js_output_file build/out.js './src/'
Mehr Infos here.
By the way, schrieb ich ein Drehbuch, es zu tun. Ich empfehle Ihnen, das Gleiche zu tun. –