我是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/**");
}
答案 0 :(得分:1)
自上次构建以来,可能没有更改LessCSS源?默认情况下,插件会跳过未修改的源。
要强制插件编译所有源代码而不管修改后的时间戳,请在插件配置中添加一个强制节点:
<configuration>
...
<force>true</force>
...
</configuration>
注意:我已经看到编译器的构建日志仍然说源被“绕过”,但是使用强制配置节点css确实被编译了,所以不要只检查日志 - 检查目标文件夹找到你的CSS输出。
希望这有帮助!
慈