我正在使用 cargo maven 插件将我的应用程序部署到 glassfish 容器中进行集成测试:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<executions>
<execution>
<id>pre-integration-test</id>
<phase>pre-integration-test</phase>
<goals>
<goal>redeploy</goal>
</goals>
</execution>
</executions>
<configuration>
<container>
<containerId>glassfish3x</containerId>
<home>${glassfish.home}</home>
</container>
<configuration>
<properties>
<cargo.servlet.port>8081</cargo.servlet.port>
<cargo.glassfish.adminPort>4849</cargo.glassfish.adminPort>
<cargo.remote.username>${domain.username}</cargo.remote.username>
<cargo.remote.password>${domain.password}</cargo.remote.password>
<cargo.glassfish.domain.name>domain1</cargo.glassfish.domain.name>
</properties>
</configuration>
<deployer>
<type>installed</type>
<deployables>
<deployable>
<groupId>de.rwth.swc.xam</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>ear</type>
</deployable>
</deployables>
</deployer>
</configuration>
</plugin>
集成测试由 Hudson 执行。如果部署失败(不管是什么原因),cargo 插件只会产生如下警告:
[INFO] [talledLocalContainer] Deprecated syntax, instead use:
[INFO] [talledLocalContainer] asadmin --interactive=false --port 4849 --user admin -passwordfile /opt/glassfishv3/.hudson/jobs/XAM Test.Setup.Application/workspace/target/cargo/configurations/glassfish3x/password.properties deploy [options] ...
[WARNING] [talledLocalContainer] remote failure: Error occurred during deployment: Application with name de.rwth.swc.xam.tests.ear-0.0.1-SNAPSHOT is already registered. Either specify that redeployment must be forced, or redeploy the application. Or if this is a new deployment, pick a different name. Please see server.log for more details.
[INFO] [talledLocalContainer] Command deploy failed.
问题是,这会导致构建成功并因此触发其他构建。
如果部署命令失败,有什么办法可以强制货物产生 Maven 构建错误而不是信息?