Ich bin fast fertig Einstellung meines Projekts, um normale Javascript-Dateien oder die Min-Versionen für verschiedene Umgebungen zu verwenden, aber es gibt eine Sache Ich kann nicht herausfinden - zumindest nicht elegant.Hilfe YUI Compressor mit Maven, Frühling, Freimarker usw. für verschiedene Umgebungen (Test/Entwicklung/Produktion)
Ich habe mein Projekt Maven POM eingerichtet, um die YUI Kompressor zu verwenden:
<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>
kein Problem funktioniert.
Ich habe auch ein Freemarker Makro auf verschiedene CSS und Javascript-Dateien enthalten ... und wenn wir „min“ Versionen verwenden möchten, wird es das Suffix in sie hinzufügen:
<#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>
Mein einziges Problem jetzt bekommt Spring oder Maven, um "True/False" (oder ich denke, es könnte nur das Suffix setzen) in meinem Freemarker-Skript für mich, wenn ich in Testumgebung oder Produktionsumgebung bin. Wie habt ihr euch mit diesem Thema beschäftigt? Ehrlich gesagt möchte ich nicht manuell herumfummeln, wenn ich meine App bereitstelle. Ich möchte nur sagen, "Verwenden Sie meine Produktionsumgebung" und es funktioniert.