Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用maven、spring、freemarker等帮助设置YUI压缩机,以适应不同的环境(测试/开发/生产)_Javascript_Spring_Maven_Freemarker_Yui Compressor - Fatal编程技术网

Javascript 使用maven、spring、freemarker等帮助设置YUI压缩机,以适应不同的环境(测试/开发/生产)

Javascript 使用maven、spring、freemarker等帮助设置YUI压缩机,以适应不同的环境(测试/开发/生产),javascript,spring,maven,freemarker,yui-compressor,Javascript,Spring,Maven,Freemarker,Yui Compressor,我几乎完成了将我的项目设置为在不同环境下使用普通javascript文件或min版本的工作,但有一件事我搞不清楚——至少不是很优雅 我已将我的项目的Maven POM设置为使用YUI压缩机: <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>yuicompressor-maven-plugin</artifact

我几乎完成了将我的项目设置为在不同环境下使用普通javascript文件或min版本的工作,但有一件事我搞不清楚——至少不是很优雅

我已将我的项目的Maven POM设置为使用YUI压缩机:

        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>yuicompressor-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
                <suffix>.min</suffix>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compress</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

net.alchim31.maven
yuicompressor maven插件
1.1
闵先生
压缩
这没问题

我还创建了一个freemarker宏来包含各种css和javascript文件。。。如果我们想使用“min”版本,它会在其中添加后缀:

<#macro cssAndJavaScript public useMin>
    <#assign suffix = "" />

    <#if useMin>
        <#assign suffix = ".min" />
    </#if>

    <#if public>
        <link rel="stylesheet" type="text/css" href="${base}/css/public/base${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/public/webpageLayout${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/public/forms${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/public/publicWebpages${suffix}.css" media="screen, projection" />
        <link rel="stylesheet" type="text/css" href="${base}/css/public/login${suffix}.css" media="screen, projection" />
    <#else>
        <link rel="stylesheet" type="text/css" href="${base}/css/ui-lightness/jquery-ui-1.8.6.custom${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/jcrop/jquery.jcrop${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/application/base${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/application/webpageLayout${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/application/forms${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/application/entityListing${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/application/entityView${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/application/questions${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/application/categoryQuestions${suffix}.css" media="screen, projection"/>
        <link rel="stylesheet" type="text/css" href="${base}/css/application/miniScoreCard${suffix}.css" media="screen, projection"/>
    </#if>

    <script src="${base}/js/jquery/jquery-1.4.2${suffix}.js"></script>
    <script src="${base}/js/jquery/jquery-ui-1.8.6.custom${suffix}.js"></script>
    <script src="${base}/js/jquery/jquery.tmpl${suffix}.js"></script>
    <script src="${base}/js/jquery/jquery.jcrop${suffix}.js"></script>
    <script src="${base}/js/json/json2${suffix}.js"></script>
    <script src="${base}/js/jwplayer/jwplayer${suffix}.js"></script>
    <script src="${base}/js/core${suffix}.js"></script>
</#macro>


我现在唯一的问题是,如果我在测试环境或生产环境中,让Spring或Maven在我的freemarker脚本中添加“true/false”(或者我猜它也可以设置后缀)。你们是怎么处理这个问题的?老实说,当我部署我的应用程序时,我不想做任何手动胡闹。我只想告诉maven,“使用我的生产环境”,它可以工作。

我不确定它如何与FreeMarker一起工作,但使用Velocity模板引擎,您可以在模型中配置希望始终显示的某些属性。因此,您可以将FreeMarker/Velocity配置bean与自定义属性列表连接起来,其中
后缀的值可以来自使用访问的属性文件中存储的值

因此,您可以让生产属性文件具有
suffix=min
,而其他文件的属性环境具有
suffix=

对于使用Maven的不同环境使用不同的属性,您可以根据运行时参数将Maven配置为在您的构建中,即
生产配置文件可以加载一组不同于默认
的筛选器值