3

我正在寻找一些关于如何使用Maven 插件获得 LESS 编译 Bootstrap 的信息。我需要用我的 less 编译 bootstrap,因为我在文件中使用 bootstrap less。现在我有 maven 插件将更少的文件编译成 css,但是当我试图让它编译 bootstrap 时它会中断。我认为这可能是一个版本问题,但只是想知道是否有人能够解决这个问题或有更好的方法。

pom.xml

 <plugin>
     <groupId>org.lesscss</groupId>
     <artifactId>lesscss-maven-plugin</artifactId>
     <version>1.3.3</version>
     <configuration>
         <sourceDirectory>${project.basedir}/src/main/webapp/less</sourceDirectory>
         <outputDirectory>${project.build.directory}/${project.build.finalName}/css</outputDirectory>
         <compress>true</compress>
         <includes>
             <include>bootstrap/bootstrap.less</include>
             <include>test.less</include>
         </includes>
         <force>true</force>
     </configuration>
     <executions>
         <execution>
              <goals>
                  <goal>compile</goal>
              </goals>
         </execution>
     </executions>
</plugin>

我在调用“clean lesscss:compile”的运行配置中运行上述内容

错误

Failed to execute goal org.codehaus.mojo:lesscss-maven-plugin:1.0-beta-3:compile (default-cli) on project FastTest: Error while compiling LESS source: bootstrap\alerts.less: Syntax Error on line 57: [object Object] (compile.js#1) -> [Help 1]

我不确定为什么它会在引导列表中的第一项之后出现,所以我重命名了 bootstrap.less 以查看它是否运行,这就是我得到的:

Failed to execute goal org.codehaus.mojo:lesscss-maven-plugin:1.0-beta-3:compile (default-cli) on project FastTest: Error while compiling LESS source: bootstrap\abootstrap.less: Syntax Error on line 686: [object Object] (compile.js#1) -> [Help 1]
4

5 回答 5

2

由于引导程序使用需要较少版本 1.4.0 的功能,因此 maven 插件似乎需要更新版本的 less

于 2014-02-12T15:51:43.987 回答
2

您没有使用正确的插件编译代码。

您正在定义:

<groupId>org.lesscss</groupId>
<artifactId>lesscss-maven-plugin</artifactId>
<version>1.3.3</version>

但从输出很明显触发了不同的插件:

org.codehaus.mojo:lesscss-maven-plugin:1.0-beta-3  
于 2013-11-11T16:05:16.803 回答
2

尽管存在插件版本问题,但您可以覆盖 Maven 插件使用的编译器...

从lesscss.org 下载最新的lesscss JS 文件,并将其放在项目的scripts/js 文件夹中,然后在插件的配置中添加一个lessJs 节点:

<configuration>
  <lessJs>${project.basedir}/.../less.?.?.?.min.js</lessJs>
  ...
</configuration>

现在插件将使用 JS 文件来编译,而不是它自己的内置的,通常是过时的编译器。

我认为最新的 JS 版本现在是 1.6.3。

希望这可以帮助!

于 2014-02-14T23:41:40.037 回答
2

如果您使用的是最新版本的 Bootstrap,您将需要 Less 1.6.x 来编译 Less 文件。

请参阅http://blog.getbootstrap.com/2014/01/30/bootstrap-3-1-0-released/,其中写道:

我们的编译器已经从 Recess 切换到 grunt-contrib-less,让我们可以访问 Less 1.6.x(与 Recess 的 1.3.x 不同)。

您使用的官方 Less Maven 插件 org.lesscss:lesscss-maven-plugin 目前仅支持 Less 1.3,目前未积极维护。但我昨天向 Maven Central 发布了它的一个分支,它支持 Less 1.6.1 并包含来自插件的其他开放拉取请求。它de.sandroboehme.lesscss:lesscss-maven-plugin:1.6.1.1.0来自https://github.com/sandroboehme/lesscss-java。使用它可以解决您的问题。

顺便说一句:如果有人碰巧感兴趣,官方 Maven 插件需要贡献者。见https://github.com/marceloverdijk/lesscss-maven-plugin/issues/39

于 2014-03-27T21:53:37.510 回答
0

同时,我会使用前端 Maven 插件。见 https://github.com/eirslett/frontend-maven-plugin

于 2015-07-24T10:16:20.803 回答