рд╕рднреА рдХрд╛ рдЕрднрд┐рд╡рд╛рджрдиред
рдореИрдВ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯреА рдмрд╛рдЗрдХ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рдорд╛рд╡реЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬреЛ рдЖрдкрдХреЛ рдХрд╕реНрдЯрдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдХреИрд╕реЗ рдорд┐рд▓рд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ рдХрд┐ JQuery рдЬреИрд╕реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдХреБрдЫ рднреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реИред рдФрд░ рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдПрдХ рдЬрдВрдЧрд▓реА рдЗрдЪреНрдЫрд╛ рдереА рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд░реА рдЦреЛрдЬреЛрдВ рдореЗрдВ, рдореИрдВ
рдмреЛрд╡рд░ рднрд░ рдореЗрдВ рдЖрдпрд╛ рдерд╛
, рд▓реЗрдХрд┐рди рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдиреЛрдб.рдЬреЗрдПрд╕ рд╕реЗ рдбрд░рдиреЗ рд╡рд╛рд▓реА рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрджрдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдлрд┐рд░ рдореБрдЭреЗ CDN рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рдЖрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЖрдк js рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЧреИрд░-рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Google CDN рдкрд░ jquery: http://ajax.googleapis.com/ajax/libs/jquery/1.8.2-jquery.min.js)ред рдЪреВрдВрдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддрд╛рд░реНрдХрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдерд╛ рдХрд┐ рдЗрд╕реЗ рдЗрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд┐рдкреЙрдЬрд┐рдЯ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП ... рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рдерд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕реАрдбреАрдПрди рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдорд╛рд╡реЗрди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ 2 рдШрдВрдЯреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛, рдФрд░ рдореИрдВрдиреЗ рдЕрдкрдиреА рдмрд╛рдЗрдХ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЕрдЧрд░ рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдердХрд╛рдпрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред
рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдпрд╣ рджреЗрдЦрд╛ рдЧрдпрд╛ рдХрд┐ рдЖрдк рдорд╛рд╡реЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рдХреЗ рднрдВрдбрд╛рд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╣рд░ рдЬрдЧрд╣ рдпрд╣ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдпрд╣ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЗрд╕ рддрдереНрдп рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рдХрд┐ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрдХреЙрдиреНрдлрд╝реЗрдХреНрдЯрд░рдлреИрдХреНрдЯрд░реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ, рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░рд▓ рд╡рд░реНрдЧ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛:
@Component(role = RepositoryConnectorFactory.class, hint = "custom") public class CustomRepositoryConnectorFactory implements RepositoryConnectorFactory, Service { @Override public RepositoryConnector newInstance(RepositorySystemSession session, RemoteRepository repository) throws NoRepositoryConnectorException { System.out.println("CustomRepositoryConnectorFactory.newInstance()"); return null; } @Override public int getPriority() { return 1; } @Override public void initService(ServiceLocator locator) { } }
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЪрдорддреНрдХрд╛рд░ рдирд╣реАрдВ рд╣реБрдЖ - рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдорд╛рд╡реЗрди рдиреЗ рдЕрд╕рдорд░реНрдерд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рднрдВрдбрд╛рд░ рдкрд░ рд╢рдкрде рд▓реЗрдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрдЯрд╛-рдЗрди / plexus / Components.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШрдЯрдХ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЬрд┐рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк plexus-Components-metadata рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд░реНрдЧ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдореИрдЬрд┐рдХ рдлрд╛рдЗрд▓ рдХреЛ рдмрдирд╛рддрд╛ рд╣реИред
<plugin> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-component-metadata</artifactId> <version>1.5.5</version> <executions> <execution> <goals> <goal>generate-metadata</goal> </goals> </execution> </executions> </plugin>
рдШрдЯрдХреЛрдВ рдХреА рдкреАрдврд╝реА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред Xml рдФрд░ рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рдЕрдкрдорд╛рди рдХрд╛ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдЕрдм рддрдХ рдореИрдВрдиреЗ рдЕрдкрдиреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд░рдЦреА рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреВрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдорд╛рд╡реЗрди рд╕реЗрдВрдЯреНрд░рд▓ рдореЗрдВ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП):
<pluginRepositories> <pluginRepository> <id>maven-burtsev-net</id> <url>http://maven.burtsev.net</url> </pluginRepository> </pluginRepositories>
рдФрд░ рдмрд┐рд▓реНрдб pom.xml рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:
<build> <extensions> <extension> <groupId>net.burtsev.maven</groupId> <artifactId>maven-custom-repository-layout</artifactId> <version>1.0</version> </extension> </extensions> </build>
рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
<repository> <id>google-cdn</id> <url>http://ajax.googleapis.com/ajax/libs/$groupId/$version/$artifactId${classifier(prefix:.)}.$extension</url> <layout>custom</layout> </repository>
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА URL рдореЗрдВ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рд╕рднреА рд╕рдорд░реНрдерд┐рдд рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХреА рд╕реВрдЪреА рджреЗрддрд╛ рд╣реВрдВ:
- $ рдЧреНрд░реБрдк рдЖрдИ.рдбреА.
- $ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп
- $ рд╕рдВрд╕реНрдХрд░рдг
- $ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░
- $ рд╡рд┐рд╕реНрддрд╛рд░
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрд┐рдирдХрд╛ рдорд╛рди рд░рд┐рдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: $ {рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рдлрд╝рд╛рдпрд░ (рдЙрдкрд╕рд░реНрдЧ:ред)}ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдЦрд╛рд▓реА рд╣реЛрдиреЗ рдкрд░ URL рдореЗрдВ рд╕реАрдорд╛рдВрдХрдХ рдХреА рдирдХрд▓ рди рдХрд░реЗрдВред
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
<dependencies> <dependency> <groupId>jquery</groupId> <artifactId>jquery</artifactId> <version>1.8.2</version> <classifier>min</classifier> <type>js</type> </dependency> </dependencies>
рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рд╡реЗрди-рдирд┐рд░реНрднрд░рддрд╛-рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>generate-resources</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/${project.build.finalName}/js</outputDirectory> <includeArtifactIds>jquery</includeArtifactIds> <includeTypes>js</includeTypes> </configuration> </execution> </executions> </plugin> </plugins>
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдм рдХреБрдЫред рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ - рд╣рдордиреЗ рдорд╛рд╡реЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЗрдПрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИред
рдкреНрд▓рдЧрдЗрди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
https://bitbucket.org/eburtsev/maven-custom-repository-layoutрдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдзреЗ рдореЗрд░реЗ рдорд╛рд╡реЗрди рднрдВрдбрд╛рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
http://maven.burtsev.net/рд╡рд░реНрдгрд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди
https://bitbucket.org/eburtsev/test-javascript-d dependencies рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛