3

私は単純な Web サイトを作成しており、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 には優れたリファレンス ドキュメントがありますが、クックブック/例/ベスト プラクティスの情報はほとんどありません :/)

4

1 に答える 1

1

ソリューション:

task CSS(dependsOn: [compile, lint, minify])
于 2012-06-24T07:02:35.810 に答える