<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def compile(self, ctx, args, dependency_classpath, upstream_analysis, settings, compiler_option_sets, zinc_file_manager, javac_plugin_map, scalac_plugin_map):
 """Invoke the compiler. Subclasses must implement. Must raise TaskError on compile failure. :param CompileContext ctx: A CompileContext for the target to compile. :param list args: Arguments to the compiler (such as javac or zinc). :param list dependency_classpath: List of classpath entries of type ClasspathEntry for dependencies. :param upstream_analysis: A map from classpath entry to analysis file for dependencies. :param JvmPlatformSettings settings: platform settings determining the -source, -target, etc for javac to use. :param list compiler_option_sets: The compiler_option_sets flags for the target. :param zinc_file_manager: whether to use zinc provided file manager. :param javac_plugin_map: Map of names of javac plugins to use to their arguments. :param scalac_plugin_map: Map of names of scalac plugins to use to their arguments. """

    raise NotImplementedError()