当前位置: 首页 > 知识库问答 >
问题:

WRO4J:从较少的文件生成CSS文件

淳于泓
2023-03-14

编辑原始问题以提供所有细节。

在web.xml中添加了以下内容:

<filter>
    <filter-name>WroContextFilter</filter-name>
    <filter-class>ro.isdc.wro.http.WroContextFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>WroContextFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
    <filter-name>WebResourceOptimizer</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    <init-param>
        <param-name>targetBeanName</param-name>
        <param-value>wroFilter</param-value>
    </init-param>
    <init-param>
        <param-name>targetFilterLifecycle</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>WebResourceOptimizer</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

在WEB-INF文件夹中创建了两个新文件wro.xml和wro.properties:

wro.properties:

managerFactoryClassName=ro.isdc.wro.manager.factory.ConfigurableWroManagerFactory
preProcessors=less4j,cssUrlRewriting,lessCssImport
postProcessors=less4j
disableCache=true

wro.xml:

<groups xmlns="http://www.isdc.ro/wro">
    <group name="base">
        <css>/resources/skins/abc/testing.less</css>
    </group>
</groups>

这里'resources'是里面的一个文件夹:src/main/webapp。

在/resources/skins/abc/文件夹中添加了一个文件testing.less:

.btn-expand (@height: 30px) {
        box-sizing: border-box;
        height: @height;
        display: inline-block;
        color: #fff;
        font-size: 12px;
        text-decoration: none;
        padding-left: 20px;
        padding-right: 1px;
        margin-right: 20px;
        background: transparent url('images/sprites.png') no-repeat -5px -164px;
        border: 0;
        position: relative;
        outline: none;
        cursor:pointer;
        overflow: visible;
    }

pom.xml文件包含以下条目:

<repository>
    <id>releases</id>
    <name>Releases</name>
    <url>https://oss.sonatype.org/content/repositories/releases</url>
</repository>   (Inside <repositories> tag)

<dependency>
    <groupId>ro.isdc.wro4j</groupId>
    <artifactId>wro4j-core</artifactId>
    <version>1.6.2</version>
</dependency>  (Inside <dependencies> tag)

<plugin>
    <groupId>ro.isdc.wro4j</groupId>
    <artifactId>wro4j-maven-plugin</artifactId>
    <version>1.7.3</version>
    <configuration>
    <targetGroups>base</targetGroups>
        <wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory>
        <cssDestinationFolder>${project.build.directory}/${project.build.finalName}/resources/css/test/</cssDestinationFolder>
        <wroFile>${basedir}/src/main/webapp/WEB-INF/wro.xml</wroFile>
        <extraConfigFile>${basedir}/src/main/webapp/WEB-INF/wro.properties</extraConfigFile>
        <contextFolder>${basedir}/src/main/webapp/</contextFolder>
        <ignoreMissingResources>false</ignoreMissingResources>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>run</goal>
            </goals>
            <phase>prepare-package</phase>
        </execution>
    </executions>
</plugin>  [Inside <build> <plugins> tag.] 

我还没有在eclipse IDE中安装m2e-wro4j插件。

基于以上,我假设当我从命令提示符[mvn clean install]进行maven构建时,应该在/resources/css/test/folder中创建一个名为base.css的css文件。我可以在分解的项目WAR文件中看到新文件夹'test',但它不包含base.css文件。控制台输出如下所示:

[INFO] Wro4j Model path: C:\workspace\{projectname}\src\main\webapp\WEB-INF\wro.xml
[INFO] targetGroups: base
[INFO] minimize: true
[INFO] ignoreMissingResources: false
[INFO] parallelProcessing: false
[INFO] destinationFolder: C:\workspace\{projectname}\target
[INFO] jsDestinationFolder: null
[INFO] cssDestinationFolder: C:\workspace\{projectname}\target\{WAR file name}\resources\css\test
[INFO] groupNameMappingFile: null
[INFO] wroManagerFactory class: ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory
[INFO] The following groups will be processed: [base]
[INFO] folder: C:\workspace\{projectname}\target\{WAR file name}\resources\css\test
[INFO] processing group: base.css
[INFO] folder: C:\workspace\{projectname}\target
[INFO] processing group: base.js 

还有一个观察。为了确保wro.properties文件被正确放置并被插件拾取,我尝试了该文件[postprocessors=less4jtttt]中的一些错误值,并且在构建时看到了一个异常。但是,wro.xml文件中的无效文件路径没有引发任何异常。

共有1个答案

海雪松
2023-03-14

虽然答案也贴在了邮件列表上,但我还是把它贴在这里以示可视性:

我已经设法在本地复制了您的测试用例,但我看到的是一个空文件。第一印象是有问题,但实际上这是预期的行为。被处理的较少的内容定义了一个mixin,只要它不被使用,它就不会产生任何输出。

要获得有效输出,请更新less以使用mixin:

div.expandable {
    .btn-expand()
}  
 类似资料:
  • 我正在使用wro4j 1.7.3和less4j/lesscss-compiler。 在我的wro.xml中,我有如下内容: 在编译时,我会得到一个错误,因为wro4j将我的*.css-file也当作*.less-file来处理。 当使用lessCSS时,而不是less4j,错误原因更好地显示出来: 更改处理器顺序无济于事: 错误仍然存在。 是否存在这样的可能性,比如wro4j,它不应该将带有css

  • 我有两个文件-file1.txt和file2.txt。我想用powershell比较这两个文件,并生成第三个文件(file3.txt),它包含从file1.txt开始的所有行减去file2.txt中的行 你能想出什么办法来做这件事吗?

  • 使用 Hexo 生成静态文件快速而且简单。 $ hexo generate 监视文件变动 Hexo 能够监视文件变动并立即重新生成静态文件,在生成时会比对文件的 SHA1 checksum,只有变动的文件才会写入。 $ hexo generate --watch 完成后部署 您可执行下列的其中一个命令,让 Hexo 在生成完毕后自动部署网站,两个命令的作用是相同的。 $ hexo generate

  • 我在纠结用Java生成JasperReport。不考虑数据源,因此所有值都为null,并且不显示子报表。 我从下面粘贴的JSON中创建了带有选项“填充报告时使用报告JSON表达式”的JSONData适配器。从Jasper Studio编译它时,它正在正确创建报告,而尝试从Java编译它会导致空报告(仅显示字段名),根本没有子报告。请帮助解决此问题。 main.jrxml subreport.jrx

  • 问题内容: 我一直在构建一个轮询应用程序。人们能够创建他们的民意调查并获取有关他们提出的问题的数据。我想添加功能,以允许用户以PDF的形式下载结果。 例如,我有两个组件负责获取问题和数据。 我正在尝试将两个组件都输出到PDF文件中。然后,用户可以下载该PFD文件。我发现了一些允许在组件内部呈现PDF的软件包。但是,我找不到能从包含虚拟DOM的输入流中生成PDF的文件。如果我想从头开始实现此目标,应

  • 嗨,我是NetBeans IDE的新手,我正在使用NetBeans GUI构建器创建我的GUI。我正在创建新文件,方法是右键单击包,单击new然后单击new JFrame Form。它工作得很好。但是我有一个带有JFrame的java文件,我可以通过编码手动创建它,我可以将它导入到GUI构建器中,这样我就可以拖放和创建GUI了。如果是,我该怎么做?(在eclipse中,我们可以右键单击该文件,然后