【发布时间】:2011-03-22 14:32:36
【问题描述】:
我有一个 jsp,其中包含一个看起来像这样的 css 链接
<link type="text/css" href="/css/login-min.css" rel="stylesheet" />
为了防止浏览器缓存 css 文件,我们将 login-min.css 替换为 css 的名称和时间戳或版本号
login-min.css?t=432432423423...
在蚂蚁中我会做类似的事情
<tstamp>
<format property="current.time" pattern="MMddyyyyhhmmssaa" offset="-5" unit="hour" />
</tstamp>
<replace dir="${deploy.path}/${name}/WEB-INF/jsp" value="login-min.css?t=${current.time}">
<include name="includes/login_css_include.jsp" />
<replacetoken>login-min.css</replacetoken>
</replace>
对于 gradle,我已将 jsp 页面更新为如下所示
<link type="text/css" href="/css/@loginCSS@" rel="stylesheet" />
并且在 build.gradle 中正在做
import org.apache.tools.ant.filters.ReplaceTokens
war {
webInf {
from ("${webAppDir}/WEB-INF/jsp") {
include: "/includes/login_css_include.jsp"
filter(ReplaceTokens, tokens: [loginCSS: 'login-min.css?v=1'])
}
}
}
但这不起作用。
这个可行,但它改变了源...我只想修改战争中的文件。
import org.apache.tools.ant.filters.ReplaceTokens
war {
webInf {
from ("${webAppDir}/WEB-INF/jsp/includes/login_css_include.jsp") {
it.eachFile {
ant.replace(file: it.file, token: "@loginCSS@", value: "login-min.css?v=1")
}
}
}
}
我是 gradle 的新手,我完全不正确吗?以前有人需要做这样的事情吗?使用 gradle 1.0-milestone-1。
谢谢
【问题讨论】:
-
您是否与
gradle -i或gradle -d一起运行以获取有关您构建战争时正在发生的事情的更多信息? -
@Emil - 感谢您的关注。我从来没有选择过这些选项,第一次尝试似乎没有做任何事情,第二次没有做我想要的,所以我没有走得更远,可能应该有。如果您想看一下,我在下面的回答确实有效。这可能不是一种非常聪明的方法,但确实可以完成工作。