用Gradle编译LESS到CSS中,不需要安装插件



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

这可能吗?如果有一个像CoffeeScript这样的标准插件,那就没什么大不了的,也很容易,但是没有一个针对LESS的插件。我是Gradle的新手,所以我不确定如何前进。显而易见的解决方案是血腥地安装插件,但鉴于我不能的限制,是否有可能在运行时编译/使用它?

  • https://github.com/koenongena/lesscss-gradle-plugin
  • https://github.com/skhome/gradle-less-plugin
  • https://github.com/msgilligan/gradle-lesscss-plugin

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

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

要使用它,您不需要提前安装任何东西。相反,您可以在构建中声明它。Gradle如下:

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

如果你不想使用插件,你可以很容易地在Gradle中编译LESS文件,而不使用任何插件。这是因为Gradle插件架构构建在与构建脚本完全相同的DSL和深度API上。主要的区别在于意图不同;一个插件的打包方式是为了在其他项目中重用。

最基本的需要是访问执行LESS编译的库,并声明使用它的任务。下面是一个使用less -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"))
}

some.less:

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

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

body {
  background-color: #000000;
}

最新更新