2

情况如下:

我正在使用 maven 和 cargo 插件来自动将 Web 应用程序部署到不同的环境,使用 Hudson 来运行/安排作业来完成这项工作。我使用 tomcat 作为目标应用程序容器。

但我想在 maven/cargo 部署最新版本之前找到将部署的 Web 应用程序备份到某个网络/FTP 位置的最佳方法。我一直在寻找一些有助于做类似事情的 maven 插件,但似乎这样的任务超出了 maven 的范围。此外,我正在寻找一些可能有助于完成这项工作的 Hudson 插件,但没有成功。

我还查看了(Tomcat) Backup WAR on Deploy中的讨论,但我想避免有人去从 tomcat 获取 war 文件并将其放入外部位置,我想自动执行此任务。

提前致谢

4

1 回答 1

1

考虑在 prepare-package 阶段或 package 阶段定义 maven-antrun-plugin。查看阶段列表:http: //www.sonatype.com/books/mvnref-book/reference/lifecycle-sect-structure.html#lifecycle-sect-default 然后,创建将您的战争复制到任何地方的 ant 目标.

这里是阶段安装的 maven-antrun-plugin 示例:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.7</version>
                <executions>
                    <execution>
                        <id>file-exists</id>
                        <phase>install</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <exec executable="cmd">
                                    <arg value="/c"/>
                                    <arg value="copy your file"/>
                                </exec>
                            </target>
                        </configuration>
                    </execution>

                </executions>
            </plugin>
        </plugins>
    </build>

然后,创建将您的战争复制到任何地方的蚂蚁目标。您可以使用其他任务代替 exec 任务,例如 SCP 任务:https ://ant.apache.org/manual/Tasks/scp.html 此外,您可以定义自己的 maven 配置文件,该配置文件仅在 Hudson 中调用。

于 2013-03-19T17:21:12.310 回答