3

从命令行我可以得到一个从 compiler.jar 重命名的函数的别名列表

帮助 说:

java -jar compiler.jar --help
[...]
--create_name_map_files                : If true, variable renaming and
                                         property renaming map files will be
                                         produced as {binary name}_vars_map.out
                                         and {binary name}_props_map.out. Note
                                         that this flag cannot be used in
                                         conjunction with either variableMapOut
                                         putFile or property_map_output_file
--create_source_map VAL                : If specified, a source map file
                                         mapping the generated source files
                                         back to the original source file will
                                         be output to the specified path. The
                                         %outname% placeholder will expand to
                                         the name of the output file that the
                                         source map corresponds to.
[...]

那么,如何从内联 java 中获取“create_name_map_files”?我查看了 AbstractCommandLineRunner.java 但与此命令行选项相关的所有类/方法都是私有的,无法从我的代码中访问。

我的代码:

CompilerOptions opt = new CompilerOptions();

// decide mode
compilationLevel.ADVANCED_OPTIMIZATIONS.setOptionsForCompilationLevel(opt);
opt.prettyPrint = false;

Compiler.setLoggingLevel(Level.OFF);

Compiler compressor = new Compiler();
compressor.disableThreads();

List<SourceFile> inputs = ...;
List<SourceFile> externs = ...;

compressor.compile(externs, inputs, opt); 
4

3 回答 3

1

您可以只使用选项: variable_map_output_file 文件名,同样适用于道具。

请注意: 标志 variable_map_output_file 和 create_name_map_files 不能同时使用。

于 2014-09-24T02:04:51.760 回答
0

CommandLineRunner.java,我会说

opt.setCreateNameMapFiles(true)
于 2014-05-13T20:04:20.677 回答
0

“compile”函数返回一个包含变量(variableMap)和属性(propertyMap)重命名映射的Result对象。这些属性包含可以序列化的 VariableMap 对象:

Result result = compiler.compiler(...);
result.variableMap.save(varmapPath);
result.propertyMap.save(propmapPath);
于 2014-09-26T05:26:51.810 回答