2010-12-03 2 views
2

은 msbuild와 google closure를 구현하려고합니다. 몇 가지 해결책을 찾았지만 효과를 얻으려고 애 쓰고 있습니다. 여러 js 파일을 읽고 빌드하는 동안 .min 버전을 만드는 방법에 대한 제안 사항이 있으십니까?Google 폐쇄와 MSBUILD

감사

편집 : 나는 완전히 무슨 일이 추천되었다 구현 볼 수있는 몇 가지 변경을 할 수 있었다 아래에서 그러나 여기 간단한 형태로 답을 내가 쓴 한 것입니다 :

<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> 

출력 경로가 나중에 동적 경로로 변경됩니다.

많은 감사

답변

6

내가 구글 폐쇄에보고하지 않은,하지만 당신은 <Exec> task을 통해 모든 명령을 실행할 수 있습니다

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

편집 : 파일의 집합에 명령을 실행하려면 :

<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

그래 잘 작동합니다. 하지만 스크립트의 디렉토리를 반복하고 min 폴더를 만들어야합니다. 예를 들어, 단일 압축이 작동합니다. nologo

+0

@nologo, 내 편집 참조. MSBuild에 관한 MSDN 문서는 유용합니다. 항목 그룹은 여기에 설명되어 있습니다 : http://msdn.microsoft.com/en-us/library/ms171453.aspx –

+1

제 경우에는 "9009 코드로 종료되었습니다"빌드 오류가 발생했습니다. 이것은 공백이있는 경로 때문입니다. "이라는 견적은 그 오류를 제거했습니다. 감사. –