Maven 自动上传的 WAR 不完整
Incomplete WAR automatically uploaded by Maven
为了简化我的 Jave EE 应用程序的部署过程,我指示 Maven 自动将生成的 WAR 文件复制到应用程序服务器。
pom.xml:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution><!-- Run our version calculation script -->
<id>Copy to Application Server</id>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/copy-to-appserver.sh</executable>
</configuration>
</execution>
</executions>
</plugin>
复制到-appserver.sh:
scp /home/user/.m2/repository/com/wolf/apix/1.0/apix-1.0.war user@srv-web:/opt/wildfly-8.2.0.Final/standalone/deployments/apix.war
不幸的是,这失败了! WAR 成功传到应用服务器,但是新旧代码混杂。我的假设是 Maven 尝试在 WAR 创建过程中发送它,因为当我 运行 部署后手动复制脚本 copy-to-appserver.sh
时,一切正常应用程序服务器。
我的问题是,我必须更改什么,以便 Maven 仅在创建/操作完成时访问 WAR 文件?
您的插件在生成源阶段过早执行
运行 它在最后一个阶段通过更改阶段部署
<phase>deploy</phase>
另外 运行 插件在正确的阶段,如 6ton 所建议的,您可能还想考虑使用 Maven WildFly plugin,它专门用于解决您的问题。这样,您就可以摆脱那个讨厌的、讨厌的脚本了。
我建议将构建过程和部署过程分开,因为 deploy
生命周期阶段旨在将工件上传到远程存储库。
为了简化我的 Jave EE 应用程序的部署过程,我指示 Maven 自动将生成的 WAR 文件复制到应用程序服务器。
pom.xml:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution><!-- Run our version calculation script -->
<id>Copy to Application Server</id>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${basedir}/copy-to-appserver.sh</executable>
</configuration>
</execution>
</executions>
</plugin>
复制到-appserver.sh:
scp /home/user/.m2/repository/com/wolf/apix/1.0/apix-1.0.war user@srv-web:/opt/wildfly-8.2.0.Final/standalone/deployments/apix.war
不幸的是,这失败了! WAR 成功传到应用服务器,但是新旧代码混杂。我的假设是 Maven 尝试在 WAR 创建过程中发送它,因为当我 运行 部署后手动复制脚本 copy-to-appserver.sh
时,一切正常应用程序服务器。
我的问题是,我必须更改什么,以便 Maven 仅在创建/操作完成时访问 WAR 文件?
您的插件在生成源阶段过早执行
运行 它在最后一个阶段通过更改阶段部署
<phase>deploy</phase>
另外 运行 插件在正确的阶段,如 6ton 所建议的,您可能还想考虑使用 Maven WildFly plugin,它专门用于解决您的问题。这样,您就可以摆脱那个讨厌的、讨厌的脚本了。
我建议将构建过程和部署过程分开,因为 deploy
生命周期阶段旨在将工件上传到远程存储库。