使用jenkins从各种文件夹中的文件构建一个javascript文件

时间:2012-09-02 23:51:29

标签: javascript build jenkins build-automation

我有这样的文件夹结构:

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”文件夹中的文件,“common”文件夹中的fileA.js文件。

screenB.js应包含“lib”文件夹中的文件,“common”文件夹中的fileB.js。

screenC.js应该包含“lib”文件夹中的文件,fileA.js和“common”文件夹中的fileB.js文件。

这可能没有一些复杂的shell脚本吗?

1 个答案:

答案 0 :(得分: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构建文件的特定值。这个构建文件creta一些引用(闭包编译器jar,文件夹等)并执行通过java任务调用编译器的“编译”。