code: public void execute ()
          throws MojoExecutionException
      {
          if (mapFile == null) mapFile = new File(base, "compmap.txt");
          if (actionDef == null) actionDef = new File(base, "actions.xml");
  
          ComponentBundler bundler = new ComponentBundler(mapFile, actionDef) {
              @Override protected boolean keepRawPngs () { return keepRawPngs; }
              @Override protected boolean uncompressed () { return false; }
              @Override protected void logInfo (String message) { getLog().info(message); }
              @Override protected void logWarn (String message) { getLog().warn(message); }
          };
  
          if (bundleDirectories == null) {
              bundleDirectories = findBundleDirs();
          }
          for (BundleDirectory bdir : bundleDirectories) {
              getLog().info("Processing " + bdir);
              File root = new File(base, bdir.root);
  
              // create the scanner
              DirectoryScanner scanner = new DirectoryScanner();
              scanner.setBasedir(new File(root, bdir.path));
              scanner.setIncludes(includes.toArray(new String[0]));
              scanner.setExcludes(excludes.toArray(new String[0]));
              scanner.scan();
  
              File targetDir = new File(targetBase, bdir.root);
              File target = new File(new File(targetDir, bdir.path), "components.jar");
              List<Tuple<File,List<String>>> sourceDirs = Lists.newArrayList();
              sourceDirs.add(Tuple.newTuple(scanner.getBasedir(),
                                            Arrays.asList(scanner.getIncludedFiles())));
              bundler.execute(root.getPath(), target, sourceDirs);
          }
      }
docs: Performs the actual work of the task.