3

これは奇妙な質問のように思えるかもしれません。ローカル gradle にプラグインをインストールせずに、LESS を CSS にコンパイルしたいと考えています。LESS を CSS にコンパイルする gradle プラグインがいくつかありますが、これは素晴らしいことですが、事前にインストールするのではなく、実行時にプラグインをコンパイルして使用したいと考えています。

これは可能ですか?CoffeeScript のような標準プラグインがあれば、大したことはなく簡単ですが、LESS 用のプラグインはありません。私は Gradle にかなり慣れていないので、先に進む方法がわかりません。明らかな解決策は、プラグインを流血インストールすることですが、実行時にコンパイル/使用することはできませんか?

4

1 に答える 1

21

ほとんどの場合、Gradleインストールにプラグインをインストールしません。むしろ、プラグインの使用をの一部として宣言しますbuild.gradle。ビルドの実行時に、ビルドスクリプトに必要なプラグインを解決し、それらをロードしてから、ビルドを実行します。あなたがリストした特定のプラグインは、(私が知る限り)公的にアクセス可能なMavenリポジトリー(Maven CentralBintrayなど)でまだ公開されていないという点で少し珍しいものです。簡単に検索したところ、MavenCentralにあるように見えるものが見つかりました。

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プラグインアーキテクチャが、ビルドスクリプトで使用するのとまったく同じDSLとディープAPIに基づいて構築されているためです。主な違いは意図の1つです。プラグインは、他のプロジェクトでの再利用を目的とした方法でパッケージ化されています。

最低限必要なのは、LESSコンパイルを実行するライブラリへのアクセスと、それを使用するタスクの宣言です。以下は、 lesscss-javaを使用した簡単な例です。コンパイルするのは1つの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;
}
于 2013-03-02T03:51:12.853 に答える