5

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

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

Gruntfile.js(只是我的 gruntfile.js 中的几个片段)

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 %>'
      }
    }
4

1 回答 1

2

你可以使用这个: 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 实现。

于 2014-04-17T08:51:51.277 回答