我正在使用Maven-War-Plugin来过滤Web-Inf中的一些资源。主要是静态的东西,例如:

var url = ${contextRoot}/save.json;

或者

<link href="static/css/layout-${buildNumber}.css"/>

一切都奏效了。我的问题是它创造了一场发展噩梦。我通常会将其加热到本地的tomcat,而我的IDE处理(保存)将更改(保存)转换为目标目录。但是当发生这种情况时,我最终在文件中获得了一个字面的$ {属性},而不是最初由战争插件替换的内容。我希望在即时测试视图/静态资源更改,而不必重新部署每个更改。

我已经使用Tomcat插件来运行它,但是当我使用资源过滤时,除非我使用它来部署,在这种情况下,我将失去热量交通功能。

我正在使用Spring,我可以使用主题,过滤主题属性,然后在我的视图中使用它来替换值。但是JS/CSS/其他静态物品呢?

有没有办法将战争插件“即时”进行“过滤器”?谁能推荐一种更好的方法来实现我要做的事情?我觉得我一直在看太久,并且对此事有一些隧道视野。

有帮助吗?

解决方案 2

最后,我保留了相同的方法,但改变了实现这一目标的方法。

对于JavaScript,我将任何需要过滤到单个常数文件中的东西:

// Constants.js

var BASE_URL = '${contextRoot}';

背后的原因是 Constants.js 文件将很少被修改,并避免将该文件随机重新部署的问题。

我的另一个例子是使用 ${buildNumber} 避免浏览器资源缓存跨部署。我发现将构建号附加到查询字符串也同样有效:

<link href="static/css/layout.css?${buildNumber}"/>

其他提示

如果您将Eclipse与M2E和M2E-WTP一起使用,则可以进行直接的Web资源过滤。这在这里解释: https://community.jboss.org/en/tools/blog/2011/05/03/m2eclipse-wtp-0120-new-new-noteworthy

并在那里演示: http://bit.ly/wgcd4j

请注意,在此视频中,Maven Profile Management UI来自JBOSS工具3.3.0.beta1(http://docs.jboss.org/tools/whatsnew/maven/maven/maven-news-3.3.0.beta1.beta1.beta1.html )

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top