我有一个奇怪的问题,在通过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构建的一部分),结果在运行的应用程序中立即可见。
答案 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"