在构建maven gulp之后Eclipse IDE没有热部署资源

时间:2016-08-27 14:44:27

标签: java eclipse maven gulp

我有一个奇怪的问题,在通过maven在eclipse中设置我的构建管道之后。我将使用我的sass编译器,但这扩展到我的整个管道(js合并,字体复制等)。一些要引导的片段:

的pom.xml

<plugins>
    <plugin>
        <groupId>com.github.eirslett</groupId>
        <artifactId>frontend-maven-plugin</artifactId>
        <version>1.0</version>

        <executions>
            [...]

            <execution>
                <id>gulp build css</id>
                <goals>
                    <goal>gulp</goal>
                </goals>

                <configuration>
                    <arguments>css</arguments>
                    <srcdir>${project.basedir}/src/main/resources/sass</srcdir>
                    <outputdir>${project.build.directory}/generated-resources/static/css</outputdir>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>

gulpfile.js

[...]

gulp.task('css', function() {
  var scssSource = 'src/main/resources/sass/main.scss';
  var cssTarget = 'target/generated-resources/static/css/';

  // compile sass files
  var sassStream = gulp.src(scssSource).pipe(
          sass().on('error', sass.logError));

  // autoprefix and minify
  sassStream.pipe(autoprefixer({
    browsers: ['last 2 versions', 'ie >= 10']
  })).pipe(concat('main.css')).pipe(gulp.dest(cssTarget)).pipe(
          rename(function(path) {
            path.basename += ".min";
          })).pipe(cleanCSS()).pipe(gulp.dest(cssTarget));
});

我确认构建管道正在工作,例如它产生正确的输出。在eclipse中查看maven控制台时,我可以看到构建成功运行。我甚至可以通过IDE在“target / generated-resources / static / css”中打开生成的css文件,并确认所做的更改。

但是 - 它们没有填充(热部署)到正在运行的应用程序。重新启动应用程序,可以看到更改。我尝试在eclipse中手动刷新文件夹,但这没有成功。

如果我手动触发构建,而不是依赖maven插件的监视机制,则会发生同样的情况。但是,刷新输出文件夹(此处为generated-resources)会填充对正在运行的应用程序的更改。

这非常烦人,因为它会大大延迟前端开发(手动运行构建,刷新文件夹等)。我还可以确认热部署本身是有效的。可以更改静态js / css文件(不是fulp构建的一部分),结果在运行的应用程序中立即可见。

1 个答案:

答案 0 :(得分:0)

您必须刷新Eclipse工作区才能进行热部署。

或者,您可以自动配置Eclipse以进行检查更改:

Window->Preferences->General->Workspace and check "Refresh automatically"

或(取决于Eclipse的版本)

Window->Preferences->General->Workspace and check "Refresh using native hooks or polling"