我想压缩所有的javascript文件并将它们聚合在一起 使用YUICompressor,我看到有一个maven插件允许 我这样做。我大部分时间都在工作。
我也在使用Mojo tomcat插件。当我去跑步时 tomcat:运行目标,tomcat不读取目标的输出 目录(这是YUI压缩器放我的javascript文件的地方) - 而是,它从我的“src / main /中的实际源文件中读取 webapp / scripts“目录。当然,聚合的javascript文件 (all.js)不存在。
我有几个问题。
如何让tomcat插件读取目标的输出文件夹 yui压缩器插件创建了吗?
我是否每次都需要运行yui压缩器maven目标 在开发期间更新我的javascript文件?
有没有更好的方法来实现这一目标?从本质上讲,我的最终目标是
能够开发JavaScript并测试我的源文件
开发模式,但我想压缩和聚合文件和
在应用程序在生产中运行时使用all.js
脚本
模式。
虽然Rails的人肯定已经想到了这一点,但这似乎也是如此 对Maven和Spring来说,这是一件非常重要的事情。
如果能得到这个,我将不胜感激 正确运行。谢谢!
答案 0 :(得分:1)
我正在调查这个问题并通过查看plugin documentation找到了我的答案。
mvn tomcat:run - 将当前项目作为动态Web应用程序运行 使用嵌入式Tomcat服务器。
这在实践中意味着在嵌入式tomcat运行时尚未达到包执行阶段。
回答 改为使用:
mvn tomcat:run-war - 将当前项目作为打包的Web运行 使用嵌入式Tomcat服务器的应用程序。
这允许maven构建包装WAR文件,因此允许 yuicompressor-maven-plugin 在嵌入式tomcat启动之前完成所需的操作。
答案 1 :(得分:-1)
至于每次都必须运行它,你应该将yui插件的运行附加到“generate-sources”执行阶段。
将以下内容添加到您的插件中(重要的部分是将其附加到生命周期的“阶段”元素):
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>...</configuration>
</plugin>
这样,插件将在generate-sources阶段运行每个构建。因此,每当您更改已为其配置插件的Java脚本时,输出.js文件将在您运行以下内容时立即更新:
mvn compile
mvn test
mvn install
mvn package
等等。
以上确实会导致在生命周期的早期创建缩小(可能是聚合)的文件,但 tomcat:run 找不到它们!