2012-09-02 25 views
1

我的文件夾結構是這樣的:建立一個JavaScript文件,從文件夾各種與詹金斯

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 

,我想建立在JavaScript文件,每個屏幕[-something] .js文件。

例如,

screenA.js應該包括在 「LIB」 文件夾,在fileA.js 「常用」 文件夾中的文件。

screenB.js應包含「lib」文件夾中的文件,「common」文件夾中的fileB.js文件。

screenC.js應在「common」文件夾中包含「lib」folde,fileA.js和fileB.js中的文件。

這可能沒有一些複雜的shell腳本?

回答

1

如果您可以使用Ant,則可以使用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> 

我從我維護的一個項目中獲取了snipet代碼。它是在NetBeans中創建的,但您可以輕鬆修改它以適應您的需求。像${build.classes.dir}這樣的值是特定於NetBeans構建文件的。這個構建文件創建了一些引用(關閉編譯器jar,文件夾等)並執行通過java任務調用編譯器的「編譯」。

+0

不錯!現在我可以在不使用shell腳本的情況下縮小js文件!非常感謝。 – yshrsmz

+0

不客氣!希望它適合您的需求! – davidbuzatto