无法找到Less CSS Maven插件的编译CSS

时间:2014-01-14 09:40:34

标签: maven less maven-plugin

我是Apache Maven和LessCSS的新手。所以我尝试包含像https://github.com/marceloverdijk/lesscss-maven-plugin中描述的Less编译器插件。到目前为止没有问题,所有文件都编译得很好,css文件在/target/[project name]/css文件夹中创建。

我尝试包含创建的* .css文件,但我不知道应该设置哪个路径。 Maven在哪里放下了构建的文件?

构建后,/target/[project name]/文件夹仅包含新的css文件夹。但我可以在localhost上访问我的应用程序,没有任何错误,除了缺少的CSS。

CSS包括:

<link rel="stylesheet" href="css/main.css">

POM.xml

<build>
    <finalName>holidayplanner</finalName>
    <plugins>
        <!-- Maven complier plugin that forces maven to use specified version of JDK/JRE while compilation -->
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <!-- Less CSS Plugin -->
        <plugin>
            <groupId>org.lesscss</groupId>
            <artifactId>lesscss-maven-plugin</artifactId>
            <version>${less.css.version}</version>
            <configuration>
                <sourceDirectory>${project.basedir}/src/main/webapp/less</sourceDirectory>
                <outputDirectory>${project.build.directory}/${project.build.finalName}/css</outputDirectory>
                <compress>true</compress>
                <includes>
                    <include>main.less</include>
                </includes>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

更新<force>属性设置为true后,我可以在appName.war/css/main.css下看到已编译的css文件。 但是我仍然无法访问我的css文件。

Tomcat7错误:“请求的资源不可用。”

Spring ResourceHandler:

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/webjars/**").addResourceLocations("/webjars/");
    registry.addResourceHandler("/img/**").addResourceLocations("/img/");
    registry.addResourceHandler("/js/**").addResourceLocations("/js/");
    registry.addResourceHandler("/less/**").addResourceLocations("/less/");
    registry.addResourceHandler("/css/**").addResourceLocations("/css/");
    registry.addResourceHandler("/pages/**").addResourceLocations("/WEB-INF/pages/");
}

Spring Security:

@Override
    public void configure(WebSecurity web) throws Exception {
        web
            .ignoring()
                .antMatchers("/webjars/**","/css/**", "/less/**","/img/**","/js/**");
    }

1 个答案:

答案 0 :(得分:1)

自上次构建以来,可能没有更改LessCSS源?默认情况下,插件会跳过未修改的源。

要强制插件编译所有源代码而不管修改后的时间戳,请在插件配置中添加一个强制节点:

<configuration>
    ...
    <force>true</force>
    ...
</configuration>

注意:我已经看到编译器的构建日志仍然说源被“绕过”,但是使用强制配置节点css确实被编译了,所以不要只检查日志 - 检查目标文件夹找到你的CSS输出。

希望这有帮助!