| OLD | NEW |
| (Empty) | |
| 1 /* |
| 2 * Copyright 2009 The Closure Compiler Authors. |
| 3 * |
| 4 * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 * you may not use this file except in compliance with the License. |
| 6 * You may obtain a copy of the License at |
| 7 * |
| 8 * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 * |
| 10 * Unless required by applicable law or agreed to in writing, software |
| 11 * distributed under the License is distributed on an "AS IS" BASIS, |
| 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 * See the License for the specific language governing permissions and |
| 14 * limitations under the License. |
| 15 */ |
| 16 |
| 17 // |
| 18 // Contents |
| 19 // |
| 20 |
| 21 The Closure Compiler performs checking, instrumentation, and |
| 22 optimizations on JavaScript code. The purpose of this README is to |
| 23 explain how to build and run the Closure Compiler. |
| 24 |
| 25 The Closure Compiler requires Java 6 or higher. |
| 26 http://www.java.com/ |
| 27 |
| 28 |
| 29 // |
| 30 // Building The Closure Compiler |
| 31 // |
| 32 |
| 33 There are three ways to get a Closure Compiler executable. |
| 34 |
| 35 1) Use one we built for you. |
| 36 |
| 37 Pre-built Closure binaries can be found at |
| 38 http://code.google.com/p/closure-compiler/downloads/list |
| 39 |
| 40 |
| 41 2) Check out the source and build it with Apache Ant. |
| 42 |
| 43 First, check out the full source tree of the Closure Compiler. There |
| 44 are instructions on how to do this at the project site. |
| 45 http://code.google.com/p/closure-compiler/source/checkout |
| 46 |
| 47 Apache Ant is a cross-platform build tool. |
| 48 http://ant.apache.org/ |
| 49 |
| 50 At the root of the source tree, there is an Ant file named |
| 51 build.xml. To use it, navigate to the same directory and type the |
| 52 command |
| 53 |
| 54 ant jar |
| 55 |
| 56 This will produce a jar file called "build/compiler.jar". |
| 57 |
| 58 |
| 59 3) Check out the source and build it with Eclipse. |
| 60 |
| 61 Eclipse is a cross-platform IDE. |
| 62 http://www.eclipse.org/ |
| 63 |
| 64 Under Eclipse's File menu, click "New > Project ..." and create a |
| 65 "Java Project." You will see an options screen. Give the project a |
| 66 name, select "Create project from existing source," and choose the |
| 67 root of the checked-out source tree as the existing directory. Verify |
| 68 that you are using JRE version 6 or higher. |
| 69 |
| 70 Eclipse can use the build.xml file to discover rules. When you |
| 71 navigate to the build.xml file, you will see all the build rules in |
| 72 the "Outline" pane. Run the "jar" rule to build the compiler in |
| 73 build/compiler.jar. |
| 74 |
| 75 |
| 76 // |
| 77 // Running The Closure Compiler |
| 78 // |
| 79 |
| 80 Once you have the jar binary, running the Closure Compiler is straightforward. |
| 81 |
| 82 On the command line, type |
| 83 |
| 84 java -jar compiler.jar |
| 85 |
| 86 This starts the compiler in interactive mode. Type |
| 87 |
| 88 var x = 17 + 25; |
| 89 |
| 90 then hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux) |
| 91 and "Enter" again. The Compiler will respond: |
| 92 |
| 93 var x=42; |
| 94 |
| 95 The Closure Compiler has many options for reading input from a file, |
| 96 writing output to a file, checking your code, and running |
| 97 optimizations. To learn more, type |
| 98 |
| 99 java -jar compiler.jar --help |
| 100 |
| 101 You can read more detailed documentation about the many flags at |
| 102 http://code.google.com/closure/compiler/docs/gettingstarted_app.html |
| 103 |
| 104 |
| 105 // |
| 106 // Compiling Multiple Scripts |
| 107 // |
| 108 |
| 109 If you have multiple scripts, you should compile them all together with |
| 110 one compile command. |
| 111 |
| 112 java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js |
| 113 |
| 114 The Closure Compiler will concatenate the files in the order they're |
| 115 passed at the command line. |
| 116 |
| 117 If you need to compile many, many scripts together, you may start to |
| 118 run into problems with managing dependencies between scripts. You |
| 119 should check out the Closure Library. It contains functions for |
| 120 enforcing dependencies between scripts, and a tool called calcdeps.py |
| 121 that knows how to give scripts to the Closure Compiler in the right |
| 122 order. |
| 123 |
| 124 http://code.google.com/p/closure-library/ |
| 125 |
| 126 // |
| 127 // Licensing |
| 128 // |
| 129 |
| 130 Unless otherwise stated, all source files are licensed under |
| 131 the Apache License, Version 2.0. |
| 132 |
| 133 |
| 134 ----- |
| 135 Code under: |
| 136 src/com/google/javascript/rhino |
| 137 test/com/google/javascript/rhino |
| 138 |
| 139 URL: http://www.mozilla.org/rhino |
| 140 Version: 1.5R3, with heavy modifications |
| 141 License: Netscape Public License and MPL / GPL dual license |
| 142 |
| 143 Description: A partial copy of Mozilla Rhino. Mozilla Rhino is an |
| 144 implementation of JavaScript for the JVM. The JavaScript parser and |
| 145 the parse tree data structures were extracted and modified |
| 146 significantly for use by Google's JavaScript compiler. |
| 147 |
| 148 Local Modifications: The packages have been renamespaced. All code not |
| 149 relevant to parsing has been removed. A JsDoc parser and static typing |
| 150 system have been added. |
| 151 |
| 152 |
| 153 ----- |
| 154 Code in: |
| 155 lib/rhino |
| 156 |
| 157 Rhino |
| 158 URL: http://www.mozilla.org/rhino |
| 159 Version: Trunk |
| 160 License: Netscape Public License and MPL / GPL dual license |
| 161 |
| 162 Description: Mozilla Rhino is an implementation of JavaScript for the JVM. |
| 163 |
| 164 Local Modifications: Minor changes to parsing JSDoc that usually get pushed |
| 165 up-stream to Rhino trunk. |
| 166 |
| 167 |
| 168 ----- |
| 169 Code in: |
| 170 lib/args4j.jar |
| 171 |
| 172 Args4j |
| 173 URL: https://args4j.dev.java.net/ |
| 174 Version: 2.0.16 |
| 175 License: MIT |
| 176 |
| 177 Description: |
| 178 args4j is a small Java class library that makes it easy to parse command line |
| 179 options/arguments in your CUI application. |
| 180 |
| 181 Local Modifications: None. |
| 182 |
| 183 |
| 184 ----- |
| 185 Code in: |
| 186 lib/guava.jar |
| 187 |
| 188 Guava Libraries |
| 189 URL: http://code.google.com/p/guava-libraries/ |
| 190 Version: 14.0 |
| 191 License: Apache License 2.0 |
| 192 |
| 193 Description: Google's core Java libraries. |
| 194 |
| 195 Local Modifications: None. |
| 196 |
| 197 |
| 198 ----- |
| 199 Code in: |
| 200 lib/jsr305.jar |
| 201 |
| 202 Annotations for software defect detection |
| 203 URL: http://code.google.com/p/jsr-305/ |
| 204 Version: svn revision 47 |
| 205 License: BSD License |
| 206 |
| 207 Description: Annotations for software defect detection. |
| 208 |
| 209 Local Modifications: None. |
| 210 |
| 211 |
| 212 ----- |
| 213 Code in: |
| 214 lib/jarjar.jar |
| 215 |
| 216 Jar Jar Links |
| 217 URL: http://jarjar.googlecode.com/ |
| 218 Version: 1.1 |
| 219 License: Apache License 2.0 |
| 220 |
| 221 Description: |
| 222 A utility for repackaging Java libraries. |
| 223 |
| 224 Local Modifications: None. |
| 225 |
| 226 |
| 227 ---- |
| 228 Code in: |
| 229 lib/junit.jar |
| 230 |
| 231 JUnit |
| 232 URL: http://sourceforge.net/projects/junit/ |
| 233 Version: 4.10 |
| 234 License: Common Public License 1.0 |
| 235 |
| 236 Description: A framework for writing and running automated tests in Java. |
| 237 |
| 238 Local Modifications: None. |
| 239 |
| 240 |
| 241 --- |
| 242 Code in: |
| 243 lib/protobuf-java.jar |
| 244 |
| 245 Protocol Buffers |
| 246 URL: http://code.google.com/p/protobuf/ |
| 247 Version: 2.4.1 |
| 248 License: New BSD License |
| 249 |
| 250 Description: Supporting libraries for protocol buffers, |
| 251 an encoding of structured data. |
| 252 |
| 253 Local Modifications: None |
| 254 |
| 255 |
| 256 --- |
| 257 Code in: |
| 258 lib/ant.jar |
| 259 lib/ant-launcher.jar |
| 260 |
| 261 URL: http://ant.apache.org/bindownload.cgi |
| 262 Version: 1.8.1 |
| 263 License: Apache License 2.0 |
| 264 Description: |
| 265 Ant is a Java based build tool. In theory it is kind of like "make" |
| 266 without make's wrinkles and with the full portability of pure java code. |
| 267 |
| 268 Local Modifications: None |
| 269 |
| 270 |
| 271 --- |
| 272 Code in: |
| 273 lib/json.jar |
| 274 URL: http://json.org/java/index.html |
| 275 Version: JSON version 20090211 |
| 276 License: MIT license |
| 277 Description: |
| 278 JSON is a set of java files for use in transmitting data in JSON format. |
| 279 |
| 280 Local Modifications: None |
| 281 |
| 282 --- |
| 283 Code in: |
| 284 tools/maven-ant-tasks-2.1.3.jar |
| 285 URL: http://maven.apache.org |
| 286 Version 2.1.3 |
| 287 License: Apache License 2.0 |
| 288 Description: |
| 289 Maven Ant tasks are used to manage dependencies and to install/deploy to |
| 290 maven repositories. |
| 291 |
| 292 Local Modifications: None |
| OLD | NEW |