Using ImportScrubber with Ant

Here's a simple example:
	<target name="scrub">
		<taskdef name="scrub" classname="net.sourceforge.importscrubber.ant.ImportScrubberTask"/>
		<scrub  root="${sourceDir}" 
			format="nobreaks" 
			classRoot="${classesDir}"
			sortjavalibshigh="true"
			recurse="true"/>
	</target>

Just declare the taskdef and invoke the task with whatever source file you want to scrub. If you want to scrub a directory, put the directory name in the root attribute. If you want to descend recursively from the root directory, use the recurse="true" attribute. If you want the Java standard libraries to appear at the top of the list of import statements, use the sortjavalibshigh="true" attribute. You can specify the way to format the import statements - either nobreaks or each. The default format is nobreaks. Finally, you can specify an encoding to use with the encoding attribute.

Here's the Ant target I use to scrub my projects. Note that I compile the code with debug info first - which discourages the compiler from removing class references.

	<target name="scrub">
	      <taskdef name="scrub"
	      classname="net.sourceforge.importscrubber.ant.ImportScrubberTask"/>
	      <javac 
			deprecation="false" 
			debug="true" 
			optimize="false" 
			srcdir="${sourceDir}" 
			destdir="${sourceDir}"
			classpath="${libDir}bcel.jar;${libDir}junit.jar"/>
		<scrub root="${sourceDir}" classRoot="${classesDir}" recurse="true"/>
		<delete>
			<fileset dir="${sourceDir}" includes="**/*.class"/>
		</delete>
	</target>