Wro4j
Free and Open Source Java project which brings together almost all the modern web tools: JsHint, CssLint, JsMin, Google Closure compressor, YUI Compressor, UglifyJs, Dojo Shrinksafe, Css Variables Support, JSON Compression, Less, Sass, CoffeeScript and much more. In the same time, the aim is to keep it as simple as possible and as extensible as possible in order to be easily adapted to application specific needs.
Install / Use
/learn @wro4j/Wro4jREADME
<img src="https://raw.githubusercontent.com/wro4j/wro4j/master/docs/wro4j-logo.png" style="max-height:1.2em;max-width: 100%;vertical-align: bottom;"> Web Resource Optimizer for Java
Wro4j is a free and Open Source Java project which will help you to easily improve your web application page loading time. It can help you to keep your static resources (js & css) well organized, merge & minify them at run-time (using a simple filter) or build-time (using maven plugin) and has a dozen of features you may find useful when dealing with web resources.
Getting Started
Wro4j has 2 possible operating modes:
- Runtime solution - the resources are processed lazily after the first request. Assuming you have defined 100 groups and only one is requested, the remaining 99 won't be processed.
- Build time solution - the resources are processed when the application is built. You are in control of defining what groups should be generated (either all of them or only a subset enumerated in configuration).
If what you need is to have all resources available during application startup, then probably using a build-time solution (Maven plugin) is the best suited for you. Alternatively, you could use the runtime solution and explicitly perform requests for all the groups after application startup.
In order to get started with Wro4j's runtime solution, you have to follow only 3 simple steps.
Step 1: Add WroFilter to web.xml
<filter>
<filter-name>WebResourceOptimizer</filter-name>
<filter-class>ro.isdc.wro.http.WroFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>WebResourceOptimizer</filter-name>
<url-pattern>/wro/*</url-pattern>
</filter-mapping>
Step 2: Create wro.xml
<groups xmlns="http://www.isdc.ro/wro">
<group name="all">
<css>/asset/*.css</css>
<js>/asset/*.js</js>
</group>
</groups>
Step 3: Use optimized resources
<html>
<head>
<title>Web Page using wro4j</title>
<link rel="stylesheet" type="text/css" href="/wro/all.css" />
<script type="text/javascript" src="/wro/all.js"/>
</head>
<body>
<!-- Insert body of your page here -->
</body>
</html>
Documentation
The documentation for this project is located here
Issues
Found a bug? Report it to the issue tracker
Feedback
If you have any questions or suggestions, please feel free to post a comment to the discussion group
Follow us on Twitter.
License
This project is available under the Apache License, Version 2.0.
Related Skills
next
A beautifully designed, floating Pomodoro timer that respects your workspace.
roadmap
A beautifully designed, floating Pomodoro timer that respects your workspace.
progress
A beautifully designed, floating Pomodoro timer that respects your workspace.
product-manager-skills
21PM skill for Claude Code, Codex, Cursor, and Windsurf: diagnose SaaS metrics, critique PRDs, plan roadmaps, run discovery, and coach PM career transitions.


