2020import org .eclipse .core .runtime .CoreException ;
2121import org .eclipse .core .runtime .IStatus ;
2222import org .eclipse .core .runtime .Status ;
23+ import org .eclipse .jdt .core .IClasspathAttribute ;
24+ import org .eclipse .jdt .core .IClasspathEntry ;
2325import org .eclipse .jdt .core .IJavaElement ;
2426import org .eclipse .jdt .core .IJavaProject ;
2527import org .eclipse .jdt .core .search .IJavaSearchConstants ;
3638
3739public class ResolveClasspathsHandler {
3840 private static final Logger logger = Logger .getLogger (Configuration .LOGGER_NAME );
41+ private static final String SCOPE_ATTRIBUTE = "maven.scope" ;
3942
4043 /**
4144 * Resolves class path for a java project.
@@ -178,10 +181,10 @@ private static String[] computeDefaultRuntimeClassPath(IJavaProject jproject) th
178181 for (int i = 0 ; i < unresolved .length ; i ++) {
179182 IRuntimeClasspathEntry entry = unresolved [i ];
180183 if (entry .getClasspathProperty () == IRuntimeClasspathEntry .USER_CLASSES ) {
181- IRuntimeClasspathEntry [] entries = JavaRuntime .resolveRuntimeClasspathEntry (entry , jproject );
184+ IRuntimeClasspathEntry [] entries = JavaRuntime .resolveRuntimeClasspathEntry (entry , jproject , true );
182185 for (int j = 0 ; j < entries .length ; j ++) {
183186
184- if (entries [j ].getClasspathEntry ().isTest ()) {
187+ if (entries [j ].getClasspathEntry ().isTest () && ! isRuntime ( entries [ j ]. getClasspathEntry ()) ) {
185188 continue ;
186189 }
187190 String location = entries [j ].getLocation ();
@@ -193,4 +196,13 @@ private static String[] computeDefaultRuntimeClassPath(IJavaProject jproject) th
193196 }
194197 return resolved .toArray (new String [resolved .size ()]);
195198 }
199+
200+ private static boolean isRuntime (final IClasspathEntry classpathEntry ) {
201+ for (IClasspathAttribute attribute : classpathEntry .getExtraAttributes ()) {
202+ if (SCOPE_ATTRIBUTE .equals (attribute .getName ()) && "runtime" .equals (attribute .getValue ())) {
203+ return true ;
204+ }
205+ }
206+ return false ;
207+ }
196208}
0 commit comments