Grunt,Livereload 与 Maven 和码头服务器

Posted

技术标签:

【中文标题】Grunt,Livereload 与 Maven 和码头服务器【英文标题】:Grunt, Livereload with maven and jetty server 【发布时间】:2013-11-18 08:45:04 【问题描述】:

我想知道是否可以在我当前使用 maven 和 jetty 的 java web 应用程序中使用 grunt 和 livereload?

我当前的 java web 应用程序的工作方式是我运行 maven 来构建 webapp,它还创建了一个本地码头服务器,我的 java 应用程序在其上运行。我希望能够使用码头服务器进行 livereload,而不是让 grunt 创建一个新的 localhost 服务器来寻找要加载的 index.html 页面。

Gruntfile.js(只是我的 gruntfile.js 中的几个 sn-ps)

var LIVERELOAD_PORT = 35729;
var lrSnippet = require('connect-livereload')(
  port: LIVERELOAD_PORT
);
var mountFolder = function (connect, dir) 
  return connect.static(require('path').resolve(dir));
;

    connect: 
      options: 
        port: 9000,
        hostname: '*'
      ,
      livereload: 
        options: 
          middleware: function (connect) 

            return [lrSnippet, mountFolder(connect, 'src/main/webapp/')];
          
        
      
    ,
    open: 
      server: 
        path: 'http://localhost:<%= connect.options.port %>'
      
    

【问题讨论】:

你有没有得到这个排序?尝试使用 intellij/tc 进行实时编辑但不一样? 【参考方案1】:

你可以使用这个: https://github.com/davidB/livereload-jvm

我这样做的方式是:以编程方式创建一个码头服务器实例,并随之创建一个 LRServer(上述实现还监视您选择的文件夹中的更改,并在发现更改时通知客户端/浏览器)。要包含 livereload.js 客户端脚本,我依赖我的框架来执行它(Apache Wicket),我将其配置为在开发模式下包含脚本。

我相信你可以为此创建一个小型 maven 插件,甚至可以通过 maven 生成一个新的 jvm(使用 exec-maven-plugin 例如http://mojo.codehaus.org/exec-maven-plugin/)和这个 livereload 实现。

【讨论】:

以上是关于Grunt,Livereload 与 Maven 和码头服务器的主要内容,如果未能解决你的问题,请参考以下文章

Grunt:查看多个文件,仅编译更改 - livereload 中断?

javascript Shopware Grunt BrowserSync Livereload

Grunt Watch致命错误:听EACCES和livereload

grunt使用watch和livereload的Gruntfile.js的配置

如何在不刷新整个页面的情况下让 Grunt/Watch/LiveReload 重新加载 Sass/CSS?

如何将 LiveReload 与 AngularJS 模板 URL 一起使用