рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдорд╛рд╡реЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдПрдХ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЯреЙрдордХреИрдЯ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред
рдорд╛рд╡реЗрди рдкреНрд░реЛрдлрд╛рдЗрд▓<profile> <id>deploy-deps</id> <build> <plugins> <plugin> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <useSubDirectoryPerScope>true</useSubDirectoryPerScope> <excludeGroupIds> , war-</excludeGroupIds> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <executions> <execution> <id>05-stop-tomcat</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <arguments> <argument>-ssh</argument> <argument>-4</argument> <argument>-agent</argument> <argument>-i</argument> <argument>${putty.key}</argument> <argument>${ssh.user}@${ssh.host}</argument> <argument>${tomcat.dir.root}/bin/shutdown.sh</argument> </arguments> <executable>plink</executable> </configuration> </execution> <execution> <id>10-clean-shared-jars</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <arguments> <argument>-ssh</argument> <argument>-4</argument> <argument>-agent</argument> <argument>-i</argument> <argument>${putty.key}</argument> <argument>${ssh.user}@${ssh.host}</argument> <argument>rm</argument> <argument>-Rf</argument> <argument>${tomcat.dir.shared}/*.jar</argument> </arguments> <executable>plink</executable> </configuration> </execution> <execution> <id>15-upload-shared-jars</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <arguments> <argument>-scp</argument> <argument>-4</argument> <argument>-agent</argument> <argument>-i</argument> <argument>${putty.key}</argument> <argument>${project.build.directory}/dependency/compile/*.jar</argument> <argument>${ssh.user}@${ssh.host}:${tomcat.lib.shared}/</argument> </arguments> <executable>pscp</executable> </configuration> </execution> <execution> <id>20-start-tomcat</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <arguments> <argument>-ssh</argument> <argument>-4</argument> <argument>-agent</argument> <argument>-i</argument> <argument>"${putty.key}"</argument> <argument>${ssh.user}@${ssh.host}</argument> <argument>bin/startup.sh</argument> </arguments> <executable>plink</executable> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile>
рдПрдХ рддрд░рдл рдХрджрдо рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреНрдпреЛрдВ рд╣реИрдХреБрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ, Nginx + Tomcat рдмрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдмрдВрдбрд▓ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рд╕рднреА рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП, рд╡реЗрдмрдк рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Nginx рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ "рджрд┐рдЦрддрд╛ рд╣реИ" рдФрд░ рдЗрд╕реЗ рд╡реЗрдм рдкрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрддрд╛ рд╣реИ "/ static / *"
- рд╕рднреА рд╕рд╛рдЭрд╛ рдЬрд╛рд╡рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рд╢рд╛рдпрдж рд╣реА рдХрднреА рдмрджрд▓реЗ рдЧрдП) рдХреЛ $ {catalina.home} / рд╕рд╛рдЭрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЪрд░ "share.loader" рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЯреЙрдордХреИрдЯ рдореЗрдВ рдХреЙрдиреНрдлрд┐рдбреЗрдВрдЯ / рдХреИрдЯрд▓рд┐рдирд╛.рдкреНрд░реЙрдкреАрдЯреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
- рдкреНрд░рддреНрдпреЗрдХ рдЯреЙрдордХреИрдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрдкрдирд╛ рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИред
- рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рдЕрдкрдирд╛ рд╣реИ
рддрджрдиреБрд╕рд╛рд░, рд╕реНрдереИрддрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдФрд░ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╣реИрдВред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдПрдХ рдпреБрджреНрдз рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдорд╛рдирдХ рдЯреЙрдордХреИрдЯ рд╡реЗрдм-рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрддреНрдкрд╛рджрди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреАрдЬреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдореЗрдВ рдЬрд┐рди рдирд┐рдЬреА рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреЛрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдкреБрдЯреНрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Pom.xml рдореЗрдВ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдпрд╣ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдзреАрд░реЗ-рдзреАрд░реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ "minuses" рдХрд╛ рдПрдХ рдЬреЛрдбрд╝рд╛ рд╣реИ - pom .xml рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдкрд░ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдерд╛рди рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдФрд░ рдпрджрд┐ рдЖрдк
рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛_ рд╡реАрдбрд┐рдпреЛ рдкрд░ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд┐рдЦрдХрд░ рдпрд╛
рдЕрдкрдиреЗ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдХреЗ рджреВрд╕рд░реЗ рдорд╛рдЗрдирд╕ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рдорд╛рдЗрдирд╕ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ? рдХреНрдпрд╛ рд╣рдо рдорд╛рд╡реЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ? рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ред
рдЪрд░рдг 1. рдорд╛рд╡реЗрди рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдбреНрд░рд╛рдлреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдкреНрд░рдХрд╛рд░ "рдорд╛рд╡реЗрди-рдкреНрд▓рдЧрдЗрди" рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
1)
org.apache.maven.plugin-tools:maven-plugin-annotations
, рдореЛрдЬреЛ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЬрд╛рд╡рд╛рдбреЛрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
2)
org.twdata.maven:mojo-executor
рд╣рдорд╛рд░реЗ рд╕реЗ рдЕрдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП
org.twdata.maven:mojo-executor
ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЛрдЬреЛ рд╡рд░реНрдЧ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдкреНрд░рддрд┐рдмрджреНрдзрдЪрд░рдг 2. рдореЛрдЬреЛ рдХреНрд▓рд╛рд╕ рд▓рд┐рдЦрдирд╛
рдХреНрд▓рд╛рд╕ рдЦрд╛рд▓реА @Mojo(name = "deploy-deps", defaultPhase = LifecyclePhase.PROCESS_SOURCES, threadSafe = true) public class DeployDepsMojo extends AbstractMojo { @Component protected MavenProject mavenProject; @Component protected MavenSession mavenSession; @Component protected BuildPluginManager pluginManager; protected MojoExecutor.ExecutionEnvironment _pluginEnv; @Override public void execute() throws MojoExecutionException, MojoFailureException { _pluginEnv = executionEnvironment(mavenProject, mavenSession, pluginManager); } }
рдкреНрд░рддрд┐рдмрджреНрдзрд╣рдореЗрдВ рдПрдиреЛрдЯреЗрд╢рди (
рдХрдорд┐рдЯ ) рд╕реЗ рдореЛрдЬреЛ рдЯреИрдЧ
рдХреА рдкреАрдврд╝реА рдХреА
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА :
рдХреНрд▓рд╛рд╕ рдЦрд╛рд▓реА <build> <plugins> <plugin> <artifactId>maven-plugin-plugin</artifactId> <executions> <execution> <id>help-goal</id> <goals> <goal>helpmojo</goal> </goals> </execution> <execution> <id>mojo-descriptor</id> <goals> <goal>descriptor</goal> </goals> </execution> </executions> <configuration> <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound> </configuration> </plugin> </plugins> </build>
рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЬреЛрдбрд╝реЗрдВ
рдпрд╣ рдерд╛ <plugin> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <useSubDirectoryPerScope>true</useSubDirectoryPerScope> <excludeGroupIds> , war-</excludeGroupIds> </configuration> </execution> </executions> </plugin>
рдмрди рдЧрдпрд╛ рд╣реИ @Mojo(name = "deploy-deps", requiresDependencyResolution = ResolutionScope.TEST, defaultPhase = LifecyclePhase.PROCESS_SOURCES, threadSafe = true) public class DeployDepsMojo extends AbstractMojo {
рдкреНрд░рддрд┐рдмрджреНрдзрд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
- рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "EssentialD dependencyResolution = ResolutionScope.TEST" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдорд╛рд╡реЗрди-рдирд┐рд░реНрднрд░рддрд╛-рдкреНрд▓рдЧрдЗрди рдЙрдиреНрд╣реЗрдВ рдХреЙрдкреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
- "рдереНрд░реЗрдбрд╕реЗрдлрд╝ = рд╕рддреНрдп" рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЛрдЬреЛ рдПрдХ рдЕрд▓рдЧ рдзрд╛рдЧреЗ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдЖрддреНрдордирд┐рд░реНрднрд░ рд╣реИ
- рд╕реНрдереИрддрд┐рдХ рдирд┐рд╖реНрдкрд╛рджрдиреАрдп рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЙрдкрд▓рдмреНрдз рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд▓рдХреНрд╖реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИ (_pluginEnv рдЪрд░)
рдЯреЙрдордХреИрдЯ рд╕рд░реНрд╡рд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ
рдпрд╣ рдерд╛ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <executions> <execution> <id>05-stop-tomcat</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <arguments> <argument>-ssh</argument> <argument>-4</argument> <argument>-agent</argument> <argument>-i</argument> <argument>${putty.key}</argument> <argument>${ssh.user}@${ssh.host}</argument> <argument>${tomcat.dir.root}/bin/shutdown.sh</argument> </arguments> <executable>plink</executable> </configuration> </execution> </executions> </plugin>
рдмрди рдЧрдпрд╛ рд╣реИ public class DeployDepsMojo extends AbstractMojo { public static final String PLG_EXEC_CFG_ARGUMENTS = "arguments"; public static final Xpp3Dom PLG_EXEC_CFG_EXEC_PLINK = element(name("executable"), "plink").toDom(); public static final String PLG_EXEC_GOAL_EXEC = goal("exec"); public static final String PLG_EXEC_PROTOCOL_SSH = "-ssh";
рд╢реЗрд╖ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВред
рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирддрд╛ рд╕реЗ, рд╣рдо рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ tomcat.lib.sared рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЯреЙрдордХреИрдЯ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░рддрд┐рдмрджреНрдзрдЪрд░рдг 3. рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдорд╛рд╡реЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рд╕реНрдерд╛рдиреАрдп рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рд░рд▓ рдХрдорд╛рдВрдб "mvan рдХреНрд▓реАрди рдЗрдВрд╕реНрдЯреЙрд▓" рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдпрд╣ рдерд╛ <profile> <id>deploy-deps</id> <build> <plugins> <plugin> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <useSubDirectoryPerScope>true</useSubDirectoryPerScope> <excludeGroupIds> , war-</excludeGroupIds> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <executions> <execution> <id>05-stop-tomcat</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <arguments> <argument>-ssh</argument> <argument>-4</argument> <argument>-agent</argument> <argument>-i</argument> <argument>${putty.key}</argument> <argument>${ssh.user}@${ssh.host}</argument> <argument>${tomcat.dir.root}/bin/shutdown.sh</argument> </arguments> <executable>plink</executable> </configuration> </execution> <execution> <id>10-clean-shared-jars</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <arguments> <argument>-ssh</argument> <argument>-4</argument> <argument>-agent</argument> <argument>-i</argument> <argument>${putty.key}</argument> <argument>${ssh.user}@${ssh.host}</argument> <argument>rm</argument> <argument>-Rf</argument> <argument>${tomcat.dir.shared}/*.jar</argument> </arguments> <executable>plink</executable> </configuration> </execution> <execution> <id>15-upload-shared-jars</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <arguments> <argument>-scp</argument> <argument>-4</argument> <argument>-agent</argument> <argument>-i</argument> <argument>${putty.key}</argument> <argument>${project.build.directory}/dependency/compile/*.jar</argument> <argument>${ssh.user}@${ssh.host}:${tomcat.lib.shared}/</argument> </arguments> <executable>pscp</executable> </configuration> </execution> <execution> <id>20-start-tomcat</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <arguments> <argument>-ssh</argument> <argument>-4</argument> <argument>-agent</argument> <argument>-i</argument> <argument>"${putty.key}"</argument> <argument>${ssh.user}@${ssh.host}</argument> <argument>bin/startup.sh</argument> </arguments> <executable>plink</executable> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile>
рдмрди рдЧрдпрд╛ рд╣реИ <profile> <id>deploy-deps</id> <build> <plugins> <plugin> <groupId>info.alenkov.tools.maven</groupId> <artifactId>tomcat7-ewar-plugin</artifactId> <executions> <execution> <phase>process-sources</phase> <goals> <goal>deploy-deps</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile>
рдорд╛рд╡реЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕реАрдзреЗ рддреИрдирд╛рддреА-рдбрд┐рдкреЛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдХрд░ рдФрд░ рд╕реАрдзреЗ рд▓рдХреНрд╖реНрдп рдХреЛ рдмреБрд▓рд╛рдХрд░ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
mvn clean process-sources tomcat7-ewar:deploy-deps
рдЗрд╕ рдкрд░, рдорд╛рд╡реЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдФрд░ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ "рдмрд╛рд╣рд░" рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛ рдЧрдИ (рдЗрд╕ рдкрдж рдХреЗ рд▓рд┐рдП
рдЕрдВрддрд┐рдо рд╡рдЪрди) - рдорд╛рд╡реЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ 106 рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдШрдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдЧреЗ рдЕрднреА рднреА рдХреЛрдб рдЕрдиреБрдХреВрд▓рди рд╣реИ, рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЬреЛрдбрд╝ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИ рдЬреЛ рдХрд┐рд╕реА рджрд┐рди рдореИрдВ рд╣реЙрдХрд░реЛрдВ рдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ред
UPD: рдЕрдкрдиреА
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдПрдХ рдкреНрд▓рдЧрдЗрди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ред рдореИрдВ рдЗрд╕реЗ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рд╕реБрдЭрд╛рд╡ / рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВ, рддреЛ рдореИрдВ рдЙрдиреНрд╣реЗрдВ
рдЧреАрдереВрдм рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред
UPD: 1.1 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдЕрджреНрдпрддрди
UPD: рд╕рдВрд╕реНрдХрд░рдг 2.0 рдХреЗ
рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди
рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ - рдкреБрдЯреНрдЯреА рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдпрд╛