2012-09-02 6 views
1

와 다양한 폴더에있는 파일에서 하나 개의 자바 스크립트 파일을 만드는이 같은 폴더 구조가 있습니다젠킨스

js_uncompressed 
    > lib 
    > libraries which all js files should include. 
    > common 
    > files which some js files should include 
    > folder1 
    > screenA.js 
    > screenB.js 
    > folder2 
    > screenC.js 

을 그리고 각 화면 [- 비슷한]은 .js를위한 자바 스크립트 파일을 구축하고자합니다. 예를 들어

,

screenA.js는 "일반적인"폴더에서 "LIB"폴더, fileA.js의 파일을 포함해야한다.

screenB.js는 "lib"폴더에 파일을, "common"폴더에 fileB.js를 포함해야합니다.

screenC.js는 "common"폴더의 "lib"folde, fileA.js 및 fileB.js에 파일을 포함해야합니다.

일부 복잡한 쉘 스크립트가 없으면 이것이 가능합니까?

답변

1

개미를 사용할 수 있으면 Google Closure Compiler을 사용하여 쉽게 만들 수 있습니다. 이것은 시작할 수있는 예입니다.

<?xml version="1.0" encoding="UTF-8"?> 
<project name="Foo" default="default" basedir="."> 
    <description>Bar.</description> 

    <target name="-pre-dist"> 

     <property name="closureCompiler" value="${build.classes.dir}/../lib/compiler.jar"/> 
     <property name="jsRootFolder" value="${build.web.dir}/javascript"/> 
     <property name="compiledJsFolder" value="${build.web.dir}/javascript"/> 
     <property name="compiledJsFileApp" value="${compiledJsFolder}/application.min.js"/> 

     <echo>Bulding JavaScript...</echo> 

     <java jar="${closureCompiler}" 
       args="--compilation_level SIMPLE_OPTIMIZATIONS 
       --js ${jsRootFolder}/screenA.js 
       --js ${jsRootFolder}/screenB.js 
       --js ${jsRootFolder}/screenC.js 
       --js ${jsRootFolder}/screenN.js 
       --js_output_file ${compiledJsFileApp}"/> 

     <echo>Done!</echo> 

    </target> 

</project> 

내가 유지 관리하는 프로젝트에서이 코드 스 니펫을 가져 왔습니다. NetBeans에서 생성되었지만 필요에 따라 쉽게 수정할 수 있습니다. ${build.classes.dir}과 같은 값은 특정 NetBeans 빌드 파일입니다. 이 빌드 파일 creta 일부 참조 (폐쇄 컴파일러 항아리, 폴더 등) 및 "컴파일"컴파일 java 작업을 통해 호출을 실행합니다.

+0

니스! 이제 쉘 스크립트없이 js 파일을 축소 할 수 있습니다! 고마워. – yshrsmz

+0

당신은 환영합니다! 그것이 당신의 필요에 맞게되기를 바랍니다! – davidbuzatto