我有一个奇怪的问题,在通过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构建的一部分)可以更改,结果在运行的应用程序中立即可见。
,这并没有改变任何东西:/ Maven构建_should_做刷新。但通常情况下,它不会。我在构建过程中看到以下行:“在gulp之后刷新文件:C:\ TC GIT \ timecontrol \ timecontrol.webui \ target \ generated-resources \ static \ css”。 我也排除了浏览器缓存 - 只是为了安全起见。 –