【发布时间】:2011-05-20 15:28:14
【问题描述】:
我正在研究 Maven Wagon Plugin 以尝试将一些工件上传到远程 UNC 服务器共享 (\\servername\share\directory\to\put\to),并且我已将其配置为在 POM 中像这样工作:
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-file</artifactId>
<version>1.0-beta-7</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<version>1.0-beta-3</version>
<executions>
<execution>
<id>upload-jar-to-folder</id>
<phase>deploy</phase>
<goals>
<goal>upload</goal>
</goals>
</execution>
</executions>
<configuration>
<fromDir>${project.build.directory}</fromDir>
<includes>*</includes>
<url>file://localhost///${servername}/${sharename}</url>
<toDir>directory/to/put/artifact</toDir>
</configuration>
</plugin>
...
</build>
当我传入 -Dservername=x -Dsharename=y 时,对于一台服务器效果很好,但是我如何扩展它以便我可以为 QA 或 Prod 运行部署有多个服务器要部署到?
我已经考虑(并编写)了一个脚本来多次运行mvn wagon:upload -Penvironment#——每个服务器一次——但这对我来说似乎有缺陷。如果我要编写一个脚本来处理这个过程,我也可以编写整个部署的脚本。然而,这剥夺了 Wagon(和 Maven)的用处......
有没有办法为一个目标运行多个<executions>?例如,当我只运行mvn deploy -Pqa 时,运行多个配置文件配置了wagon:upload 任务?
【问题讨论】:
-
不是单独上传,你的服务器不能共享一个网络驱动器吗?他们可能应该在同一个网络中并且可以互相看到。只是一个建议。
-
我不确定这是否可行。我部署到的文件夹是 Weblogic 安装的“自动部署”文件夹,该文件夹特定于每个实例。我不反对这样做,但我不知道我以前是否看过它并且不知道该怎么做。
标签: maven wagon maven-wagon-plugin