Hi, use these two files for your custom compiler: The java
implementation and the ant build.xml file
--------------------------------------------
CommandLineRunnerImpl.java------------------------------------------------------
package org.example.closure;
/**
* Created by IntelliJ IDEA.
* Date: 4/13/11
* Time: 9:54 AM
*
*
* The CommandLineRunner from the Google-Closure Compiler parses the
command-
* line
*/
import com.google.common.collect.ImmutableSet;
import com.google.javascript.jscomp.CommandLineRunner;
import com.google.javascript.jscomp.CompilerOptions;
import java.lang.Override;
public class CommandLineRunnerImpl extends CommandLineRunner {
protected CommandLineRunnerImpl(String[] args) {
//super class parses command line
super(args);
}
@Override
protected CompilerOptions createOptions() {
CompilerOptions options = super.createOptions();
//strip Logger from Javascript. Be aware of b'logger', etc.
options.stripTypePrefixes = ImmutableSet.of("goog.debug",
"goog.asserts", "window.console");
options.stripNameSuffixes = ImmutableSet.of("logger",
"logger_", "window.console.log");
return options;
}
public static void main(String[] args) {
CommandLineRunnerImpl runner = new
CommandLineRunnerImpl(args);
if (runner.shouldRunCompiler()) {
runner.run();
} else {
System.exit(-1);
}
}
}
--------------------------------------------
build.xml------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<project name="mycustomclosurecompiler" default="build">
<property name="src.dir" value="${basedir}/src" />
<property name="build.dir" value="${basedir}/build" />
<property name="classes.dir" value="${basedir}/classes" />
<property name="closure-compiler.jar" value="../closure-compiler/
build/compiler.jar" />
<target name="clean">
<delete dir="${build.dir}" />
<delete dir="${classes.dir}" />
</target>
<target name="compile">
<mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}"
classpath="${closure-compiler.jar}"
destdir="${classes.dir}"
includeantruntime="true" />
</target>
<target name="MyCustomClosureCompiler" depends="compile">
<jar destfile="${build.dir}/MyCustomClosureCompiler.jar">
<zipfileset src="${closure-compiler.jar}" excludes="META-
INF/**" />
<fileset dir="${classes.dir}" />
<manifest>
<attribute name="Main-Class"
value="org.example.closure.CommandLineRunnerImpl" />
</manifest>
</jar>
</target>
<target name="build" depends="MyCustomClosureCompiler" />
</project>
------------------------------------------------------------------------------------------------------
e.g.:
Folder: "compilers" should contain both the svn checkout of the
GoogleClosureCompiler (foldername: 'closure-compiler) and a folder for
your custom implementation: 'mycustomclosurecompiler'
.
..
'compilers'
.
..
'closure-compiler'
'mycustomclosurecompiler'
Greets,
Jan