部署为 WAR 时,在 Grails 3 中未编译 Less CSS
Less CSS is not compiled in Grails 3 when deploying as WAR
我在以下环境中有一个 grails 应用程序:
| Grails 版本:3.0.9
| Groovy版本:2.4.5
| JVM 版本:1.8.0_60
我安装了以下插件:
com.bertramlabs.plugins:资产管道-gradle:2.5.0
com.bertramlabs.plugins:较少资产管道:2.6.7
在我的本地开发环境中,我的 less 文件正在成功编译,一切都按预期工作。但是,在部署到生产环境时,less 并没有被预编译成 css(据我所知)。
我假设本地环境很好是因为 less-asset-pipeline 插件默认为 less4j 编译器。
我已经尝试按照以下文档进行 Git 回购:
https://github.com/bertramdev/asset-pipeline
https://github.com/bertramdev/less-asset-pipeline
如果我 运行 .gradelw assetCompile,我看到资产管道包括常规 css 文件,但对较少文件的引用被忽略(或失败)。
这是 gradle 构建文件,我删除了一些条目以便更容易找到是否缺少任何内容:
buildscript {
ext {
grailsVersion = project.grailsVersion
}
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
// Custom maven repo for the cloudinary plugin
// maven { url "http://dl.bintray.com/infinit/infinit-opensource" }
}
dependencies {
classpath "org.grails:grails-gradle-plugin:$grailsVersion"
classpath 'com.bertramlabs.plugins:asset-pipeline-gradle:2.5.0'
}
}
plugins {
id "io.spring.dependency-management" version "0.5.2.RELEASE"
}
version "0.1"
group "mchq.admin"
apply plugin: "spring-boot"
apply plugin: "war"
apply plugin: "asset-pipeline"
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: "org.grails.grails-web"
apply plugin: "org.grails.grails-gsp"
ext {
grailsVersion = project.grailsVersion
gradleWrapperVersion = project.gradleWrapperVersion
}
assets {
minifyJs = true
minifyCss = true
}
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
maven { url "https://repo.grails.org/grails/repo" }
// Custom maven repo for the cloudinary plugin
maven { url "http://dl.bintray.com/infinit/infinit-opensource" }
maven { url "https://repo1.maven.org/maven2" }
}
dependencyManagement {
imports {
mavenBom "org.grails:grails-bom:$grailsVersion"
}
applyMavenExclusions false
}
dependencies {
compile "org.springframework.boot:spring-boot-starter-logging"
compile "org.springframework.boot:spring-boot-starter-actuator"
compile "org.springframework.boot:spring-boot-autoconfigure"
provided "org.springframework.boot:spring-boot-starter-tomcat"
compile "org.grails:grails-dependencies"
compile "org.grails:grails-web-boot"
compile "org.grails.plugins:hibernate"
compile "org.grails.plugins:cache"
compile "org.hibernate:hibernate-ehcache"
compile "org.grails.plugins:scaffolding"
compile 'org.grails.plugins:spring-security-core:3.0.0.M1'
compile "org.grails.plugins:mail:2.0.0.RC2"
runtime 'mysql:mysql-connector-java:5.1.37'
runtime "org.grails.plugins:asset-pipeline"
compile 'com.bertramlabs.plugins:less-asset-pipeline:2.6.7'
// Note: It is recommended to update to a more robust driver (Chrome, Firefox etc.)
testRuntime 'org.seleniumhq.selenium:selenium-htmlunit-driver:2.44.0'
console "org.grails:grails-console"
}
task wrapper(type: Wrapper) {
gradleVersion = gradleWrapperVersion
}
task stage() {
dependsOn clean, war
}
tasks.stage.doLast() {
delete fileTree(dir: "build/distributions")
delete fileTree(dir: "build/assetCompile")
delete fileTree(dir: "build/distributions")
delete fileTree(dir: "build/libs", exclude: "*.war")
}
war.mustRunAfter clean
奇怪的是,如果我向构建文件的资产 {} 部分添加任何内容,终端内的所有构建都会失败,它就会挂起。
非常欢迎任何关于确保 less 文件预编译的指示!
谢谢
关于 less 插件
,您的 build.gradle
应该是这样的
buildscript {
dependencies {
classpath 'com.bertramlabs.plugins:less-asset-pipeline:2.6.7'
}
}
dependencies {
runtime 'com.bertramlabs.plugins:less-asset-pipeline:2.6.7'
}
您还应该获取最新版本的资产管道
我在以下环境中有一个 grails 应用程序:
| Grails 版本:3.0.9 | Groovy版本:2.4.5 | JVM 版本:1.8.0_60
我安装了以下插件:
com.bertramlabs.plugins:资产管道-gradle:2.5.0 com.bertramlabs.plugins:较少资产管道:2.6.7
在我的本地开发环境中,我的 less 文件正在成功编译,一切都按预期工作。但是,在部署到生产环境时,less 并没有被预编译成 css(据我所知)。
我假设本地环境很好是因为 less-asset-pipeline 插件默认为 less4j 编译器。
我已经尝试按照以下文档进行 Git 回购:
https://github.com/bertramdev/asset-pipeline https://github.com/bertramdev/less-asset-pipeline
如果我 运行 .gradelw assetCompile,我看到资产管道包括常规 css 文件,但对较少文件的引用被忽略(或失败)。
这是 gradle 构建文件,我删除了一些条目以便更容易找到是否缺少任何内容:
buildscript {
ext {
grailsVersion = project.grailsVersion
}
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
// Custom maven repo for the cloudinary plugin
// maven { url "http://dl.bintray.com/infinit/infinit-opensource" }
}
dependencies {
classpath "org.grails:grails-gradle-plugin:$grailsVersion"
classpath 'com.bertramlabs.plugins:asset-pipeline-gradle:2.5.0'
}
}
plugins {
id "io.spring.dependency-management" version "0.5.2.RELEASE"
}
version "0.1"
group "mchq.admin"
apply plugin: "spring-boot"
apply plugin: "war"
apply plugin: "asset-pipeline"
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: "org.grails.grails-web"
apply plugin: "org.grails.grails-gsp"
ext {
grailsVersion = project.grailsVersion
gradleWrapperVersion = project.gradleWrapperVersion
}
assets {
minifyJs = true
minifyCss = true
}
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
maven { url "https://repo.grails.org/grails/repo" }
// Custom maven repo for the cloudinary plugin
maven { url "http://dl.bintray.com/infinit/infinit-opensource" }
maven { url "https://repo1.maven.org/maven2" }
}
dependencyManagement {
imports {
mavenBom "org.grails:grails-bom:$grailsVersion"
}
applyMavenExclusions false
}
dependencies {
compile "org.springframework.boot:spring-boot-starter-logging"
compile "org.springframework.boot:spring-boot-starter-actuator"
compile "org.springframework.boot:spring-boot-autoconfigure"
provided "org.springframework.boot:spring-boot-starter-tomcat"
compile "org.grails:grails-dependencies"
compile "org.grails:grails-web-boot"
compile "org.grails.plugins:hibernate"
compile "org.grails.plugins:cache"
compile "org.hibernate:hibernate-ehcache"
compile "org.grails.plugins:scaffolding"
compile 'org.grails.plugins:spring-security-core:3.0.0.M1'
compile "org.grails.plugins:mail:2.0.0.RC2"
runtime 'mysql:mysql-connector-java:5.1.37'
runtime "org.grails.plugins:asset-pipeline"
compile 'com.bertramlabs.plugins:less-asset-pipeline:2.6.7'
// Note: It is recommended to update to a more robust driver (Chrome, Firefox etc.)
testRuntime 'org.seleniumhq.selenium:selenium-htmlunit-driver:2.44.0'
console "org.grails:grails-console"
}
task wrapper(type: Wrapper) {
gradleVersion = gradleWrapperVersion
}
task stage() {
dependsOn clean, war
}
tasks.stage.doLast() {
delete fileTree(dir: "build/distributions")
delete fileTree(dir: "build/assetCompile")
delete fileTree(dir: "build/distributions")
delete fileTree(dir: "build/libs", exclude: "*.war")
}
war.mustRunAfter clean
奇怪的是,如果我向构建文件的资产 {} 部分添加任何内容,终端内的所有构建都会失败,它就会挂起。
非常欢迎任何关于确保 less 文件预编译的指示!
谢谢
关于 less 插件
,您的build.gradle
应该是这样的
buildscript {
dependencies {
classpath 'com.bertramlabs.plugins:less-asset-pipeline:2.6.7'
}
}
dependencies {
runtime 'com.bertramlabs.plugins:less-asset-pipeline:2.6.7'
}
您还应该获取最新版本的资产管道