1

得到一个简单的任务:mvn deploy将最终工件 org.foo.MyProject_1.2.3.war 复制到 /tomcat/webapps/myproject.war

根据 maven 文档设置 pom:

...
<distributionManagement>
        <repository>
                <id>local_tomcat</id>
                <url>/tomcat/webapps</url>
        </repository>
</distributionManagement>
...    
<extensions>
        <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-file</artifactId>
                <version>2.2</version>
        </extension>
</extensions>
...

但它没有用。由于某种原因, wagon 尝试创建目录 /org/foo/MyProject/1.2.3 并失败。

当然,我可以使用 tomcat:deploy 或 ant,但我认为deploy这是部署的正确选择。

在我看来,我虐待了插件。这与在远程存储库上安装工件的能力deploy相同。install我对吗?

如果deploy选择错误,那么在 maven 中传输/重命名文件的正确方法是什么?Wagon 看起来不错,但不确定它是否可以重命名文件。

提前谢谢

4

2 回答 2

1

Maven 中的部署是指将工件放入远程存储库(通常是存储库管理器或有时是 Maven 中心),而不是放入 Tomcat 等容器中。此外,基于Maven中的生命周期,部署阶段在安装阶段之后,这意味着换句话说,如果您调用了 mvn deploy,安装已经运行。如果您想将工件(通常是战争)部署到 Tomcat,maven-tomcat-plugin是正确的选择。对于进行某种集成测试,cargo2-maven-plugin可能是一个更好的解决方案。

于 2012-06-01T12:15:21.633 回答
0

部署任务通常用于将您的项目构建的工件部署到远程存储库中,以供其他人下载。

如果您想上传由您的项目构建的战争,请使用http://mojo.codehaus.org/tomcat-maven-plugin/deployment.html之类的插件或等效插件。

于 2012-06-01T12:17:20.627 回答