3
3
import java .io .File ;
4
4
import java .io .IOException ;
5
5
import java .util .Collections ;
6
- import java .util .LinkedHashSet ;
7
- import java .util .LinkedList ;
8
6
import java .util .List ;
9
7
import java .util .Map ;
10
8
import java .util .Set ;
14
12
import org .apache .maven .artifact .repository .ArtifactRepository ;
15
13
import org .apache .maven .artifact .resolver .ArtifactResolutionRequest ;
16
14
import org .apache .maven .artifact .resolver .ArtifactResolutionResult ;
15
+ import org .apache .maven .artifact .resolver .filter .ArtifactFilter ;
17
16
import org .apache .maven .model .Dependency ;
18
17
import org .apache .maven .model .Model ;
19
18
import org .apache .maven .model .io .ModelReader ;
26
25
27
26
import de .saumya .mojo .ruby .gems .GemException ;
28
27
import de .saumya .mojo .ruby .script .ScriptException ;
29
- import org .apache .maven .project .MavenProject ;
30
28
31
29
/**
32
30
* installs a set of given gems without resolving any transitive dependencies
@@ -127,7 +125,8 @@ private void collectJarDependencies(Set<Artifact> jars, Artifact artifact) throw
127
125
Model pom = reader .read (set .iterator ().next ().getFile (), null );
128
126
for ( Dependency dependency : pom .getDependencies () ){
129
127
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" )) {
131
130
Artifact a = manager .createArtifact (dependency .getGroupId (), dependency .getArtifactId (),
132
131
dependency .getVersion (), dependency .getClassifier (), dependency .getType ());
133
132
a .setScope (dependency .getScope ());
@@ -144,7 +143,17 @@ private void resolveJarDepedencies(Set<Artifact> jars) {
144
143
.setArtifactDependencies (jars )
145
144
.setResolveTransitively (true )
146
145
.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
+ });
148
157
ArtifactResolutionResult result = this .repositorySystem .resolve (req );
149
158
Set <Artifact > resolvedArtifacts = result .getArtifacts ();
150
159
for ( Artifact artifact : resolvedArtifacts ){
0 commit comments