2016-08-27 43 views
0

我有一个奇怪的问题,在通过maven在eclipse中设置我的构建管道后。例如,我将使用我的sass编译器,但这扩展到了我的整个管道(js合并,字体复制等)。一些片段来引导:Eclipse IDE在maven gulp构建后没有热部署资源

的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插件的监视机制,则会发生同样的情况。但是,刷新输出文件夹(此处生成的资源)会填充正在运行的应用程序的更改。

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

回答

0

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

另外,您可以配置Eclipse进行检查的变化自动去:

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

还是不幸(取决于Eclipse的版本)

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

,这并没有改变任何东西:/ Maven构建_should_做刷新。但通常情况下,它不会。我在构建过程中看到以下行:“在gulp之后刷新文件:C:\ TC GIT \ timecontrol \ timecontrol.webui \ target \ generated-resources \ static \ css”。 我也排除了浏览器缓存 - 只是为了安全起见。 –

相关问题