2012-06-24 64 views
3

我正在製作一個簡單的網站,並且正在編寫一個gradle構建腳本,它將執行lint和縮小css/html/js等操作。gradle任務分組/封裝

在這個階段,我剛做這工作的CSS,但只是在初始非結構化格式

defaultTasks 'loadToOutput', 'minCSS' ,'deployToSite' 

task loadToOutput(type: Copy) { 
    from 'src/web' 
    into 'output' 
} 

task compileSCSS(type: Exec) { 
    commandLine 'sass', '/home/alistair/dev/personalwebsite/output/style/main.scss', '/home/alistair/dev/personalwebsite/output/style/main.css' 
} 

task csslint(type: Exec, dependsOn: compileSCSS) { 
    def cmdLineOptions = ["--errors=adjoining-classes,box-model,box-sizing,compatible-vendor-prefixes,display-property-grouping,duplicate-background-images,duplicate-properties,empty-rules,errors,fallback-colors,floats,font-faces,font-sizes,gradients,import,important,known-properties,outline-none,overqualified-elements,qualified-headings,regex-selectors,rules-count,shorthand,text-indent,unique-headings,universal-selector,unqualified-attributes,vendor-prefix,zero-units"] 
    def cssDir = '/home/alistair/dev/personalwebsite/output/style' 

    commandLine = ["csslint"] + cmdLineOptions + [cssDir] 
} 

task minCSS(type: Exec, dependsOn: csslint) { 
    commandLine 'csso', '/home/alistair/dev/personalwebsite/output/style/main.css', '/home/alistair/dev/personalwebsite/output/style/main.css' 
} 

task deployToSite(type: Copy) { 
    from 'output' 
    into '/var/www/personalwebsite' 
} 

我想要做的是組中一個有點清潔的方式CSS的任務。例如

task CSS { 
    compile 
    lint 
    minify 
} 

不過,我可以找出如何做到這一點的唯一方法是有一個包含CSS的項目,這是我目前的需求有點過分了一個獨立的編譯文件。有沒有簡單/推薦的方式,我可以將任務封裝到一個組中,然後只需執行組就可以這麼說?

(上有很大的Gradle參考文檔,但很少食譜/例子/最佳實踐信息:/)

+1

你就不能做到這一點與'任務CSS (dependsOn:[compile,lint,minify])'? – rodion

+0

是的,是的,你可以。這是完美的謝謝你。你可以發佈一個答案,如果你想或我會。歡呼 – Alistair

+0

酷:)我已經轉發它作爲一個正確的答案。 – rodion

回答

1

解決辦法:

task CSS(dependsOn: [compile, lint, minify])