Java 多模块maven项目的构建失败,但每个模块都成功构建
我对多模块maven项目有一个奇怪的问题。它由几个模块(16个模块)组成,有三个模块无法一起成功构建(让我们将它们命名为A、B、C),因为C失败。当我从项目中删除模块A或B时,生成成功。当只构建A、B、C时,构建也会成功(我使用mvn-PLA、B、C干净安装)。最奇怪的是,只有在Mac上才能观察到这个问题。模块A、B、C中的每一个都由几个JBehave功能测试组成。故事由JBehaveMaven插件在集成测试阶段开始。每个故事都测试cargo maven插件部署的SOAP web服务。以下是jbehave嵌入程序代码:Java 多模块maven项目的构建失败,但每个模块都成功构建,java,spring,maven,jbehave,Java,Spring,Maven,Jbehave,我对多模块maven项目有一个奇怪的问题。它由几个模块(16个模块)组成,有三个模块无法一起成功构建(让我们将它们命名为A、B、C),因为C失败。当我从项目中删除模块A或B时,生成成功。当只构建A、B、C时,构建也会成功(我使用mvn-PLA、B、C干净安装)。最奇怪的是,只有在Mac上才能观察到这个问题。模块A、B、C中的每一个都由几个JBehave功能测试组成。故事由JBehaveMaven插件在集成测试阶段开始。每个故事都测试cargo maven插件部署的SOAP web服务。以下是jb
public class SampleEmbedder extends Embedder {
@Override
public EmbedderControls embedderControls() {
return new EmbedderControls().doIgnoreFailureInStories(true).doIgnoreFailureInView(true);
}
@Override
public Configuration configuration() {
Class<? extends SampleEmbedder> embedderClass = this.getClass();
return new MostUsefulConfiguration()
.useStoryLoader(new LoadFromClasspath(embedderClass.getClassLoader()))
.useStoryReporterBuilder(new StoryReporterBuilder()
.withCodeLocation(CodeLocations.codeLocationFromClass(embedderClass))
.withDefaultFormats()
.withFormats(CONSOLE, TXT, HTML, XML)
.withCrossReference(new CrossReference()))
.useParameterConverters(new ParameterConverters()
.addConverters(new DateConverter(new SimpleDateFormat("yyyy-MM-dd")))) // use custom date pattern
.useStepMonitor(new SilentStepMonitor())
.usePendingStepStrategy(new FailingUponPendingStep()
);
}
@Override
public InjectableStepsFactory stepsFactory() {
return new SpringStepsFactory(configuration(), createContext());
}
private ApplicationContext createContext() {
return new SpringApplicationContextFactory("spring/application-context.xml").createApplicationContext();
}
}
公共类SampleEmbedder扩展了Embedder{
@凌驾
公共EmbedderControls EmbedderControls(){
返回新的EmbedderControls();
}
@凌驾
公共配置(){
CLASS你运行并行构建吗?不,模块是一个接一个地构建的。第一步应该是从根开始执行mvn clean package
,并请添加失败时获得的消息输出……该消息特定于测试,因为测试失败。我们在JMS队列中放入一条消息,并读取c中为null的答案失败的情况:(java.lang.AssertionError:期望实际值不为空)
mvn clean package
由于未达到集成测试阶段,因此最终成功