【问题标题】:How to get maven yuicompressor and tomcat plugins to play nice如何让 maven yuicompressor 和 tomcat 插件玩得很好
【发布时间】:2011-12-01 12:28:05
【问题描述】:

我想压缩我所有的 javascript 文件并聚合它们 使用 YUICompressor,我看到有一个 Maven 插件允许 我来做这件事。我得到了它的大部分工作。

我也在使用 Mojo tomcat 插件。当我去运行 tomcat:run 目标,tomcat 不从目标的输出中读取 目录(这是 YUI 压缩器放置我的 javascript 文件的地方) - 而是从我的“src/main/”中的实际源文件中读取 webapp/scripts”目录。当然,聚合的javascript文件 (all.js) 不存在。

我有几个问题。

  1. 如何让 tomcat 插件读取目标的输出文件夹 yui 压缩插件创建的?

  2. 是否每次我想运行 yui 压缩器 maven 目标 在开发过程中更新我的 javascript 文件?

  3. 有没有更好的方法来实现这一点?本质上,我的最终目标是 能够开发 JavaScript 并测试我的源文件 开发模式,但我想压缩和聚合文件和 当应用程序在生产中运行时使用all.js 脚本 模式。

虽然 Rails 的人肯定已经想到了这一点,但这似乎 使用 Maven 和 Spring 做一件不平凡的事情。

我将不胜感激有关如何获得此功能的任何和所有帮助 正确运行。谢谢!

【问题讨论】:

    标签: java javascript tomcat maven yui-compressor


    【解决方案1】:

    我只是在调查这个问题,并通过查看plugin documentation 找到了答案。

    mvn tomcat:run - 将当前项目作为动态 Web 应用程序运行 使用嵌入式 Tomcat 服务器。

    这实际上意味着嵌入式tomcat运行时还没有到达包执行阶段。

    答案是改为使用:

    mvn tomcat:run-war - 将当前项目作为打包的 web 运行 使用嵌入式 Tomcat 服务器的应用程序。

    这允许 maven 构建尽可能地打包 WAR 文件,因此允许 yuicompressor-maven-plugin 在嵌入式 tomcat 启动之前完成它需要做的事情。

    【讨论】:

      【解决方案2】:

      至于每次都必须运行,你应该将 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>
      

      这样,插件将在生成源阶段运行每个构建。因此,每当您更改已为其配置插件的 java 脚本时,输出 .js 文件将在您运行类似以下内容时立即更新:

      mvn compile
      mvn test
      mvn install
      mvn package
      

      等等。


      上述情况确实会导致在生命周期的早期创建缩小(可能是聚合)文件,但 tomcat:run 找不到它们!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-18
        • 2011-09-14
        • 2011-09-17
        • 1970-01-01
        相关资源
        最近更新 更多