Dan*_*iel 4 javascript build-process war gradle
在开发过程中,我们使用的是未缩小的javascript和CSS文件.但是,当生产战争建立时,它们必须缩小(使用yuicompressor).所以,我想用缩小的文件替换原始的javascript和CSS文件.项目结构如下(没什么特别的):
+ webapp
|-- js
|-- css
...
Run Code Online (Sandbox Code Playgroud)
我想要做的是:在Gradle创建WAR之前,我想用yuicompressor缩小上面提到的文件,并希望它们被打包在WAR中.
到目前为止我所做的是在创建WAR之前运行一个任务,这会缩小文件:
war {
it.dependsOn minifyJavaScript
}
Run Code Online (Sandbox Code Playgroud)
minifyJavaScript任务获取webapp/js文件夹中的所有文件,缩小它们并将它们存储在$ {buildDir}/js目录中.我唯一无法工作的是这些文件被打包到WAR中.我试着调整sourceSets,但是我从Gradle得到了一个错误:
apply plugin: 'java'
...
sourceSets {
main {
webapp {
srcDir "${buildDir}/js"
}
}
}
Run Code Online (Sandbox Code Playgroud)
错误:找不到支持的Gradle DSL方法:'sourceSets()'
我还尝试将文件包含在:
war {
it.dependsOn minifyJavaScript
include ${buildDir}/js
}
Run Code Online (Sandbox Code Playgroud)
此解决方案的问题是WAR仅包含缩小的文件.
那么,有没有办法告诉Gradle在WAR创建过程中添加$ {buildDir}/js路径?或者是否有更好/更简单的方法来包含缩小的文件?
它比我想象的更难:
war {
it.dependsOn minifyJavaScript
exclude "js"
from( "${buildDir}/js", {
into 'js'
})
}
Run Code Online (Sandbox Code Playgroud)
我要排除未缩小的JS文件,而不是包含缩小的文件.必须排除原始文件,否则js目录中的文件将被复制(在创建的WAR文件中).
| 归档时间: |
|
| 查看次数: |
1900 次 |
| 最近记录: |