diff --git a/tycho-p2-repository-plugin/src/main/java/org/eclipse/tycho/plugins/p2/repository/MavenP2SiteMojo.java b/tycho-p2-repository-plugin/src/main/java/org/eclipse/tycho/plugins/p2/repository/MavenP2SiteMojo.java index efe6893f3d..58b29e077d 100644 --- a/tycho-p2-repository-plugin/src/main/java/org/eclipse/tycho/plugins/p2/repository/MavenP2SiteMojo.java +++ b/tycho-p2-repository-plugin/src/main/java/org/eclipse/tycho/plugins/p2/repository/MavenP2SiteMojo.java @@ -160,6 +160,9 @@ public class MavenP2SiteMojo extends AbstractMojo { @Parameter(defaultValue = "false") private boolean includeTransitiveDependencies; + @Parameter(defaultValue = "false") + private boolean failOnResolveError; + @Parameter(defaultValue = "300") private int timeoutInSeconds = 300; @@ -464,6 +467,9 @@ protected void resolve(List dependencies, List bundles, List resolveArtifact(Artifact artifact, boolean resolveTransitively) { + protected Set resolveArtifact(Artifact artifact, boolean resolveTransitively) + throws MojoExecutionException { ArtifactResolutionRequest request = new ArtifactResolutionRequest(); request.setArtifact(artifact); request.setOffline(session.isOffline()); @@ -524,6 +531,17 @@ protected Set resolveArtifact(Artifact artifact, boolean resolveTransi request.setResolveTransitively(resolveTransitively); request.setRemoteRepositories(session.getCurrentProject().getRemoteArtifactRepositories()); ArtifactResolutionResult result = repositorySystem.resolve(request); + if (failOnResolveError) { + for (Exception exception : result.getExceptions()) { + throw new MojoExecutionException(exception); + } + for (Exception exception : result.getErrorArtifactExceptions()) { + throw new MojoExecutionException(exception); + } + for (Exception exception : result.getMetadataResolutionExceptions()) { + throw new MojoExecutionException(exception); + } + } return result.getArtifacts(); }