2012-06-24 3 views
3

Я делаю простой сайт и пишу сценарий построения градиента, который будет делать такие вещи, как lint и minify css/html/js.gradle task grouping/encapsulation

На данном этапе я просто сделал 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

да, да, вы можете. это идеальное спасибо. вы можете отправить ответ, если хотите, или я буду. cheers – Alistair

+0

cool :) Я переписал его как правильный ответ. – rodion

ответ

Смежные вопросы