Bootstrap,LESS和Maven插件

时间:2013-10-25 16:09:20

标签: maven twitter-bootstrap less maven-plugin

我正在寻找一些有关如何使用Maven plugin编译Bootstrap的信息。我需要用少量编译bootstrap因为我在我的文件中使用较少的bootstrap。现在我有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列表中的第一项之后发生,所以我重命名为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]

5 个答案:

答案 0 :(得分: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  

答案 1 :(得分:2)

似乎maven插件需要更新版本的更少版本,因为bootstrap使用的版本需要更少版本1.4.0

答案 2 :(得分:2)

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

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

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

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

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

希望这有帮助!

答案 3 :(得分:2)

如果您使用的是最新版本的Bootstrap,则需要更少的1.6.x才能编译Less文件。

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

  

我们已经从Recess切换到grunt-contrib-less用于我们的编译器,使我们可以访问Less 1.6.x(而不是1.3.x with Recess)。

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

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

答案 4 :(得分:0)

同时我会使用Frontend Maven插件。看到 https://github.com/eirslett/frontend-maven-plugin