2010-12-03 19 views
2

suchen, Google Schließung mit Msbuild zu implementieren. Ich fand ein paar Lösungen, aber ich kämpfe darum, dass es funktioniert. irgendwelche Vorschläge, wie ich mehrere js-Dateien lesen und .min-Versionen während des Builds erstellen kann?Google-Schließung und MSBUILD

dank

EDIT: mit der Antwort von unten konnte ich einige Änderungen im Hinblick auf macht in vollem Umfang umzusetzen, was empfohlen wurde, aber in einer einfachen Form hier ist, was ich geschrieben habe:

<ItemGroup> 
    <JSMin Include="$(OutputPath)Scripts\*.js"/> 
    </ItemGroup> 
    <Target Name="AfterBuild" Inputs="@(JSMin)" Outputs="@(JSMin ->'%(Directory)%(Filename).min%(Extension)')"> 
    <Exec Command="java -jar C:\temp\compiler.jar --js %(JSMin.Identity) --js_output_file C:\temp\%(JSMin.Filename).min.js"/> 
    </Target> 

Der Ausgabepfad wird später in einen dynamischen Pfad geändert.

vielen Dank

Antwort

6

Ich habe nicht bei Google Closure sah, aber Sie können jeden Befehl durch die <Exec> task laufen:

<Project DefaultTargets="build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Target Name="build"> 
     <Exec Command="echo Hello world"/> 
    </Target> 
</Project> 

Edit: Um einen Befehl über einen Satz von Dateien auszuführen:

<Project DefaultTargets="build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup> 
    <JSMin Include="jquery.js"/> 
    <JSMin Include="somethingelse.js"/> 
    </ItemGroup> 

    <Target Name="build" Inputs="@(JSMin)" Outputs="@(JSMin->'%(Directory)%(Filename).min%(Extension)')"> 
    <Exec Command="java -jar C:\temp\compiler.jar --js %(JSMin.Identity) --js_output_file %(JSMin.Directory)%(JSMin.Filename).min%(JSMin.Extension)"/> 
    </Target> 
</Project> 
+0

ja das funktioniert gut. aber ich muss über ein Verzeichnis von Skripten iterieren und den min-Ordner erstellen. Zum Beispiel funktioniert eine einzige Komprimierung: nologo

+0

@nologo, siehe meine Bearbeitung. Die MSDN-Dokumentation auf MSBuild ist nützlich. Artikelgruppen werden hier erklärt: http://msdn.microsoft.com/en-us/library/ms171453.aspx –

+1

In meinem Fall bekam ich einen Build-Fehler "mit Code 9009 beendet". Dies war aufgrund eines Pfades mit Leerzeichen. Zitat mit " entfernt diesen Fehler. Vielen Dank. –