рд╢реБрдн рджреЛрдкрд╣рд░, рд╕рд╛рдерд┐рдпреЛрдВ!
рдореИрдВ рдЕрдкрд╛рдЪреЗ рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Google рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ Google рдХреНрд▓реЛрдЬрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдкрдиреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда
https://github.com/urmuzov/closure-maven , рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рднреА рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдореБрдЦреНрдп рдШрдЯрдХ рдЖрд░реНрдХрд╖рдХ рд╣реИред рдЪрд╛рдкрд▓реВрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреНрдп рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИ, рдЬреЛ рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рд╕рдмрд╕реЗ рдЖрдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд░реНрдХрдЯрд╛рдЗрдк рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
- рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рд╡реЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рдкреИрдХреНрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб (рдРрд╕реА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рдХреНрд▓реЛрдЬрд░-рдкреИрдХреЗрдЬ рдирд╛рдордХ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЪрд┐рд╣реНрдирд┐рдд рдкреИрдХреЗрдЬ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ);
- рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП
<dependencies>
рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рд╕реЗ рдЕрдирдкреИрдХ рдХреНрд▓реЛрдЬрд░-рдкреИрдХреЗрдЬ; - рдЬрд╛рд╡рд╛ рдФрд░ wro4j рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд░рд┐рд╕реЛрд░реНрд╕ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ js рдФрд░ css рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдФрд░ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ;
- рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП 5 рд╕рдВрдХрд▓рди рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
compiled
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ "рдореБрдХрд╛рдмрд▓рд╛" рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдПред рд╕рдВрдХрд▓рди рд╕реНрддрд░ ADVANCED_OPTIMIZATIONS
;merged
- рдПрдХ рдореЗрдВ рд╕рднреА рд╕реНрд░реЛрдд рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ gluing рдХреЗ рд▓рд┐рдП, рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрдХрд▓рди рдХреЗ рдмрд┐рдирд╛ред рд╕рдВрдХрд▓рди рд╕реНрддрд░ WHITESPACE_ONLY
, рд╕реНрд╡рд░реВрдкрдг PRETTY_PRINT
;sources
- рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред compiled
рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдХрд▓рди рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди HTML рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;sources-no-compile
- рдбреАрдмрдЧрд┐рдВрдЧ html / рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдПред рд╕рдВрдХрд▓рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдмрд╕ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ html рдореЗрдВ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ;jar
- рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рд░ рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП;
mvn site
рдЪрд▓рд╛рддреЗ рд╕рдордп jsdoc рдФрд░ jslint рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред
sources
рдФрд░
sources-no-compile
рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдорд╛ рд╣реИ, рд╡реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЕрдЬрдЧрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдпрд╣ рд╕реАрдорд╛
depswriter.py
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ, рдЬреЛ
deps.js
рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреА рд╣реИ, рдЬреЛ рдХреНрд▓реЛрдЬрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдпрд╣рд╛рдБ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг
рдЗрд╕ рдЕрднрд┐рд▓реЗрдЦ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдмрд╕ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ (рдЖрдкрдХреЛ рд╕рдВрд╕реНрдХрд░рдг 3 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ):
mvn -DarchetypeRepository=http://urmuzov.github.com/maven-repository/releases/ \ -DarchetypeGroupId=com.github.urmuzov \ -DarchetypeArtifactId=closure-package-maven-archetype \ -DarchetypeVersion=1.0.2 \ -DgroupId=my.test.group \ -DartifactId=test-artifact \ -Dversion=1.0.0-SNAPSHOT \ -Dpackage=my.test.pkg \ archetype:generate
рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ
com.github.urmuzov:closure-package-maven-archetype:1.0.2
, рдЖрдк
com.github.urmuzov:closure-package-maven-archetype:1.0.2
archetype рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
com.github.urmuzov:closure-package-maven-archetype:1.0.2
рдХреЛ
com.github.urmuzov:closure-package-maven-archetype:1.0.2
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реНрдерд┐рдд
urmuzov.github.com/maven-repository/releases
urmuzov.github.com/maven-repository/releases
рдЬрдмрдХрд┐ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕рдореВрд╣, рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреНрд░рдорд╢рдГ
my.test.group
,
test-artifact
рдФрд░
1.0.0-SNAPSHOT
рд╣реЛрдВрдЧреЗ, рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдореБрдЦреНрдп рдкреИрдХреЗрдЬ
my.test.pkg
рд╣реЛрдЧрд╛ред
рдорд╛рд╡реЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдФрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рдЗрд╕ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛: (
//
)
~$ cd test-artifact/ ~/test-artifact$ tree . тФЬтФАтФА pom.xml тФФтФАтФА src тФФтФАтФА main тФЬтФАтФА python тФВ тФФтФАтФА closure-library // python deps.js тФВ ... тФЬтФАтФА resources тФВ тФЬтФАтФА jquery-1.4.4.min.js тФВ тФФтФАтФА my тФВ тФФтФАтФА test тФВ тФФтФАтФА pkg //, тФВ тФФтФАтФА javascript // , js , externs тФВ тФЬтФАтФА desktop.entry.js // тФВ тФЬтФАтФА mobile.entry.js // тФВ тФФтФАтФА sample // js тФВ тФФтФАтФА sample.js // тФФтФАтФА webapp тФЬтФАтФА index.html // html desktop.entry.js тФЬтФАтФА META-INF тФЬтФАтФА mobile.html // html mobile.entry.js тФФтФАтФА WEB-INF тФЬтФАтФА web.xml тФФтФАтФА wro.xml // wro 14 directories, 19 files
рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реИ, рдЪрд▓реЛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред
compiled
рдмрдЬрд╛рдп
compiled
рдЖрдк рдХрд┐рд╕реА рднреА 5 рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
~/test-artifact$ mvn -P compiled clean install [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building test-artifact 1.0.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ ... [INFO] --- closure-package-maven-plugin:1.0.2:copy (default) @ test-artifact --- [INFO] [INFO] --- closure-compiler-maven-plugin:1.0.2:compile (compile-advanced) @ test-artifact --- [INFO] simplePasses: [desktop, mobile] [INFO] == SimplePass (/home/urmuzov/test-artifact/target/closure/javascript/desktop.entry.js -> /home/urmuzov/test-artifact/target/test-artifact/desktop.js) == [INFO] file size: desktop.js -> 1588 bytes [INFO] == SimplePass (/home/urmuzov/test-artifact/target/closure/javascript/mobile.entry.js -> /home/urmuzov/test-artifact/target/test-artifact/mobile.js) == [INFO] file size: mobile.js -> 1587 bytes ... [INFO] --- gmaven-plugin:1.0-rc-5:execute (property-setup) @ test-artifact --- [INFO] SimplePass[desktop]: For simple inclusion use ${desktop.entry.js} in your HTML file [INFO] SimplePass[mobile]: For simple inclusion use ${mobile.entry.js} in your HTML file ... [INFO] --- wro4j-maven-plugin:1.3.8:run (default) @ test-artifact --- ... [INFO] /home/urmuzov/java/target/test-artifact/target/all.js (78601bytes) has been created! ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
рд▓реЙрдЧ рдХреЗ рдмрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдЬреЛ рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдП рдЧрдП рдЪрд╛рдк рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИрдВред
рд╕рдВрдХрд▓рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
~/test-artifact$ cd target/test-artifact/ ~/test-artifact/target/test-artifact$ tree . тФЬтФАтФА desktop.js // desktop.entry.js тФЬтФАтФА index.html // html desktop.entry.js тФЬтФАтФА META-INF // META-INF javasript тФЬтФАтФА mobile.html // html mobile.entry.js тФЬтФАтФА mobile.js // mobile.entry.js тФЬтФАтФА target тФВ тФФтФАтФА all.js // all src/main/webapp/WEB-INF/wro.xml тФФтФАтФА WEB-INF // WEB-INF javasript
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдВрдЪрд╛рд▓рди
рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрд╢рди рдХрд┐рдП рдЧрдП рдереЗ:
closure-package-maven-plugin
рдиреЗ closure-package-maven-plugin
рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ <dependency>
рдХреЛ рджреЗрдЦрд╛, рдкреИрдХреНрдб рдХреНрд▓реЛрдЬрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдвреВрдВрдврд╛ рдФрд░ рдЗрд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ред
<dependency> <groupId>com.github.urmuzov</groupId> <artifactId>closure-library-package</artifactId> <version>${closureMaven.version}</version> </dependency>
closure-compiler-maven-plugin
<properties>...<passes>desktop mobile</passes>...</properties>
рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ <properties>...<passes>desktop mobile</passes>...</properties>
рд╕рдВрдкрддреНрддрд┐ рдиреЗ desktop.entry.js
рдФрд░ mobile.entry.js
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрдХрд▓рди рдХреЗ рджреЛ "рд╕рд░рд▓ рдкрд╛рд╕" рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ mobile.entry.js
рдЙрдиреНрд╣реЗрдВ desktop.js
рдФрд░ mobile.js
рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдХреЗред рдЖрдк рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рд╕рдВрдкреВрд░реНрдг рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рд░реНрдЧ, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
gmaven-plugin
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЧреБрдг HTML рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рддреНрд╡рд░рд┐рдд рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реБрдП рдереЗ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ ${desktop.entry.js}
рдФрд░ ${mobile.entry.js}
ред рдореИрдВ рддреБрд░рдВрдд рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреВрдВрдЧрд╛, "рд╣рдореЗрдВ рдЗрди рдЧреБрдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?" рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ compiled
рдпрд╛ merged
compiled
merged
рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<script type="text/javascript" src="desktop.js"></script>
рдФрд░ рдЬрдм sources
рдпрд╛ sources-no-compile
рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ sources
, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рддреАрди рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:
<script type="text/javascript" src="goog/base.js"></script> <script type="text/javascript" src="deps.js"></script> <script type="text/javascript" src="desktop.entry.js"></script>
рдЗрд╕рд▓рд┐рдП, рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрджрд▓рддреЗ рд╕рдордп HTML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд / рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рд░реНрдорд╛рдг ${output.closure.js.prefix}desktop${output.closure.js.suffix}
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, gmaven-plugin
рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ gmaven-plugin
рдпрд╣ рдирд┐рд░реНрдорд╛рдг ${desktop.entry.js}
рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, html рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
- Wro4j рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, jquery-1.4.4.min.js рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рднреА .js. рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рдСрдкрд░реЗрд╢рди, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдмрд╣реБрдд рдХрдо рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЫреЛрдЯрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдореЗрдВ рдЪрд┐рддреНрд░ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдпреВрдЖрд░рдПрд▓ред
рдЖрдИрдбреАрдИ рдПрдХреАрдХрд░рдг
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рднреА рдЖрдИрдбреАрдИ рдореЗрдВ рдорд╛рд╡реЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИред
рдиреЗрдЯрдмреАрдиреНрд╕ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓рдмрд╛рд░ рдореЗрдВ рдПрдХ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рд╣реИ, рд╕реВрдЪреА рдореЗрдВ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:

IntelliJ рдореЗрдВ рдЖрдИрдбрд┐рдпрд╛ рдХреЛ рдЯреВрд▓рдмрд╛рд░ рдореЗрдВ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рд╕реЗ рднреА рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ:

рд▓реЗрдХрд┐рди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛:

рдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЙрд╕реА рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдЗрд╕ рдкреБрд░рд╛рд▓реЗрдЦ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреБрдЫ рднреА рд╣реЛ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдпрд╛ рдкреНрд░рд▓реЗрдЦрди, рдЬреЛ рдЕрдм рддрдХ рдХреЗрд╡рд▓ рд░реВрд╕реА рдореЗрдВ рд╣реИ:
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣рд╛рдБ
- рдХрдВрдкрд╛рдЗрд▓рд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ
- рдпрд╣рд╛рдБ рдХреЗ рд╢реНрд▓реЛрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
- рд╕рдВрдХрд▓рдХ рд╕реЗ рдЕрд▓рдЧ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ
рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдШрдЯрдирд╛рдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦреЗрдЧрд╛ред
рдЦреИрд░, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдореБрдЭреЗ GitHub рдкрд░ рдХрд╛рдВрдЯрд╛!