Skip to content

Commit d835086

Browse files
committed
filter out the jruby core artifacts from gem sets
1 parent 1234604 commit d835086

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

gem-maven-plugin/src/main/java/de/saumya/mojo/gem/SetsMojo.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import java.io.File;
44
import java.io.IOException;
55
import java.util.Collections;
6-
import java.util.LinkedHashSet;
7-
import java.util.LinkedList;
86
import java.util.List;
97
import java.util.Map;
108
import java.util.Set;
@@ -14,6 +12,7 @@
1412
import org.apache.maven.artifact.repository.ArtifactRepository;
1513
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
1614
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
15+
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
1716
import org.apache.maven.model.Dependency;
1817
import org.apache.maven.model.Model;
1918
import org.apache.maven.model.io.ModelReader;
@@ -26,7 +25,6 @@
2625

2726
import de.saumya.mojo.ruby.gems.GemException;
2827
import de.saumya.mojo.ruby.script.ScriptException;
29-
import org.apache.maven.project.MavenProject;
3028

3129
/**
3230
* installs a set of given gems without resolving any transitive dependencies
@@ -127,7 +125,8 @@ private void collectJarDependencies(Set<Artifact> jars, Artifact artifact) throw
127125
Model pom = reader.read(set.iterator().next().getFile(), null);
128126
for( Dependency dependency : pom.getDependencies() ){
129127
if (!dependency.getType().equals("gem")) {
130-
if (dependency.getScope() == null || dependency.getScope().equals("compile") || dependency.equals("runtime")) {
128+
if (dependency.getScope() == null || dependency.getScope().equals("compile") ||
129+
dependency.getScope().equals("runtime")) {
131130
Artifact a = manager.createArtifact(dependency.getGroupId(), dependency.getArtifactId(),
132131
dependency.getVersion(), dependency.getClassifier(), dependency.getType());
133132
a.setScope(dependency.getScope());
@@ -144,7 +143,17 @@ private void resolveJarDepedencies(Set<Artifact> jars) {
144143
.setArtifactDependencies(jars)
145144
.setResolveTransitively(true)
146145
.setLocalRepository(localRepository)
147-
.setRemoteRepositories(project.getRemoteArtifactRepositories());
146+
.setRemoteRepositories(project.getRemoteArtifactRepositories())
147+
.setCollectionFilter(new ArtifactFilter() {
148+
// we want to skip all those jruby artifacts to be on the safe side
149+
public boolean include(Artifact artifact) {
150+
return !(artifact.getGroupId().equals("org.jruby") &&
151+
(artifact.getArtifactId().equals("jruby") ||
152+
artifact.getArtifactId().equals("jruby-complete") ||
153+
artifact.getArtifactId().equals("jruby-core") ||
154+
artifact.getArtifactId().equals("jruby-stdlib")));
155+
}
156+
});
148157
ArtifactResolutionResult result = this.repositorySystem.resolve(req);
149158
Set<Artifact> resolvedArtifacts = result.getArtifacts();
150159
for( Artifact artifact : resolvedArtifacts ){

0 commit comments

Comments
 (0)