【发布时间】:2021-05-17 08:30:53
【问题描述】:
我正在开发一个 Maven 构建管道。 目前我面临的问题是,如果依赖项无效,maven 项目仍在构建中。 我想每个人都知道日志中的警告:
[警告] POM 无效,传递依赖项(如果有)将不可用,请启用调试日志以获取更多详细信息。
我希望项目失败而不是警告,因为在大型构建管道中很难找到它。
我查看了代码: 由于 EventType.ARTIFACT_DESCRIPTOR_INVALID,警告在 maven-core 中发生。
在 DefaultArtifactDescriptorReader 中,我发现在构建有效模型期间会捕获 ModelBuildingException。 有一个 ArtifactDescriptorPolicy。基于此,将添加异常或仅触发 EventType.ARTIFACT_DESCRIPTOR_INVALID(请参阅 invalidDescriptor())。
model = modelBuilder.build( modelRequest ).getEffectiveModel();
}
catch ( ModelBuildingException e )
{
for ( ModelProblem problem : e.getProblems() )
{
if ( problem.getException() instanceof UnresolvableModelException )
{
result.addException( problem.getException() );
throw new ArtifactDescriptorException( result );
}
}
invalidDescriptor( session, trace, a, e );
if ( ( getPolicy( session, a, request ) & ArtifactDescriptorPolicy.IGNORE_INVALID ) != 0 )
{
return null;
}
result.addException( e );
throw new ArtifactDescriptorException( result );
}
我没有找到配置 ArtifactDescriptorPolicy 的任何选项。 我希望 ArtifactDescriptorPolicy.STRICT 能解决我的问题。 有谁知道更多关于这个问题的信息吗?
【问题讨论】: