From bb105b064665ff90da071082448e87915dedc9e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20L=C3=A4ubrich?= Date: Fri, 18 Mar 2022 07:34:07 +0100 Subject: [PATCH] Fix #781 - all p2 items and embedded jars must be considered optional MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Christoph Läubrich --- .../tycho/packaging/UpdateConsumerPomMojo.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/UpdateConsumerPomMojo.java b/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/UpdateConsumerPomMojo.java index d7a9765c73..7e632436bd 100644 --- a/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/UpdateConsumerPomMojo.java +++ b/tycho-packaging-plugin/src/main/java/org/eclipse/tycho/packaging/UpdateConsumerPomMojo.java @@ -34,6 +34,8 @@ import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.project.MavenProject; +import org.eclipse.tycho.PackagingType; +import org.eclipse.tycho.TychoConstants; /** * Updates the pom file with the dependencies from the tycho model. If you @@ -109,10 +111,12 @@ public void execute() throws MojoExecutionException, MojoFailureException { List list = Objects.requireNonNullElse(project.getDependencies(), Collections.emptyList()); for (Dependency dep : list) { Dependency copy = dep.clone(); - copy.setSystemPath(null); - if (dep.getGroupId().startsWith("p2.eclipse.") && Artifact.SCOPE_SYSTEM.equals(dep.getScope())) { - copy.setOptional(true); - copy.setScope(Artifact.SCOPE_PROVIDED); + if (Artifact.SCOPE_SYSTEM.equals(dep.getScope())) { + if (dep.getGroupId().startsWith(TychoConstants.P2_GROUPID_PREFIX) || isEmbeddedJar(dep)) { + copy.setOptional(true); + copy.setScope(Artifact.SCOPE_PROVIDED); + copy.setSystemPath(null); + } } dependencies.add(copy); } @@ -139,4 +143,9 @@ public void execute() throws MojoExecutionException, MojoFailureException { } + private boolean isEmbeddedJar(Dependency dep) { + return PackagingType.TYPE_ECLIPSE_PLUGIN.equals(dep.getType()) && dep.getClassifier() != null + && !dep.getClassifier().isBlank(); + } + }