【问题标题】:Compiling LESS into CSS with Gradle without installing a plug-in在不安装插件的情况下使用 Gradle 将 LESS 编译成 CSS
【发布时间】:2013-03-02 11:51:12
【问题描述】:

这似乎是一个奇怪的问题。我想将 LESS 编译成 CSS 而不在我的本地 gradle 中安装插件。有几个 gradle 插件可以将 LESS 编译成 CSS,这很棒,但我想在运行时编译和使用这些插件,而不是事先安装它们。

这可能吗?如果有一个像 CoffeeScript 这样的标准插件,那也没什么大不了的,而且很容易,但没有一个用于 LESS 的插件。我对 Gradle 很陌生,所以我不确定如何前进。显而易见的解决方案是血腥安装插件,但考虑到我不能这样做的约束,是否可以在运行时编译/使用它?

【问题讨论】:

    标签: less gradle


    【解决方案1】:

    在大多数情况下,您不会在 Gradle 安装中安装插件。相反,您将插件的使用声明为build.gradle 的一部分。在构建运行时,它会解析构建脚本所需的任何插件,加载它们,然后运行构建。您列出的特定插件有点不寻常,因为(据我所知)它们尚未在可公开访问的 Maven 存储库中发布(例如 Maven CentralBintray)。快速搜索后,我发现一个似乎在 Maven Central 中:

    https://github.com/obecker/gradle-lesscss-plugin

    要使用它,您无需提前安装任何东西。相反,您可以像这样在 build.gradle 中声明它:

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'de.obqo.gradle:gradle-lesscss-plugin:1.0-1.3.3'
        }
    }
    apply plugin: 'lesscss'
    

    如果您不想使用插件,您可以在 Gradle 中轻松编译 LESS 文件,而无需使用任何插件。这是因为Gradle plugin architecture 构建在与您在构建脚本中使用的完全相同的 DSL 和深度 API 之上。主要区别在于意图之一;插件的打包方式旨在在其他项目中重复使用。

    最低要求是访问执行 LESS 编译的库,以及使用它的任务声明。这是一个使用lesscss-java 的简单示例。它只编译一个 LESS 文件,但它应该很容易根据您的要求进行扩展。

    build.gradle:

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath "org.lesscss:lesscss:1.3.0"
        }
    }
    
    task lessCompile << {
        def compiler = new org.lesscss.LessCompiler()
        compiler.compile(file("some.less"), file("some.css"))
    }
    

    一些.less:

    @mainColor: black;
    body {
        background-color: @mainColor;
    }
    

    运行gradle lessCompile后,结果为some.css:

    body {
      background-color: #000000;
    }
    

    【讨论】:

      猜你喜欢
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      相关资源
      最近更新 更多