我正在使用 Gretty 通过gradle appRun
. 我还使用Gradle Asset Pipeline 插件将我的 Less 文件编译为 CSS。
我想与Gretty 的快速重新加载功能集成,这样当我更改 Less 文件时,它会自动编译它并将 CSS 复制到就地网络应用程序。
我已经在我的文件中使用 Gretty 的onScanFilesChanged
设置实现了一个解决方案:build.gradle
buildscript {
dependencies {
classpath 'org.akhikhl.gretty:gretty:1.2.4'
classpath 'com.bertramlabs.plugins:asset-pipeline-gradle:2.7.0'
classpath 'com.bertramlabs.plugins:less-asset-pipeline:2.7.0'
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'
apply plugin: 'org.akhikhl.gretty'
apply plugin: 'com.bertramlabs.asset-pipeline'
dependencies {
// ...
}
assets {
excludes = ['bootstrap/**']
}
war.dependsOn assetCompile
gretty {
servletContainer = 'tomcat8'
enableNaming = true
contextPath = '/'
// This affects the war task as well
webappCopy {
from 'build/assets', { into 'stylesheet' }
}
afterEvaluate {
prepareInplaceWebAppFolder.dependsOn assetCompile
}
scanDir "src/assets"
fastReload "src/assets"
onScanFilesChanged { List<String> files ->
if (files.findAll { it.endsWith ".less" }.size() > 0) {
assetCompile.compile()
}
}
}
有没有一种更简洁的方法来做到这一点,而不涉及build.gradle
文件中的太多代码?