private void addDependenciesToAptPath( RepositoryManager repositoryManager, ModuleSpec moduleSpec, Set<ModuleSpec> visited, StatusPrinterAptProgressListener progressListener) { if (!visited.add(moduleSpec)) return; String ns = ModuleUtil.getNamespaceFromUri(moduleSpec.getName()); String name = ModuleUtil.getModuleNameFromUri(moduleSpec.getName()); ArtifactContext context = new ArtifactContext( ns, name, moduleSpec.getVersion(), ArtifactContext.JAR, ArtifactContext.CAR); if (progressListener != null) progressListener.retrievingModuleArtifact(moduleSpec, context); ArtifactResult result = repositoryManager.getArtifactResult(context); if (progressListener != null) { if (result == null) { progressListener.retrievingModuleArtifactFailed(moduleSpec, context); } else { progressListener.retrievingModuleArtifactSuccess(moduleSpec, result); } } ceylonEnter.addModuleToAptPath(moduleSpec, result); for (ArtifactResult dep : result.dependencies()) { if (JDKUtils.isJDKModule(dep.name()) || JDKUtils.isOracleJDKModule(dep.name())) { continue; } // we are running deps, so we need compile/provided/runtime, but not test if (dep.moduleScope() == ModuleScope.TEST) continue; ModuleSpec depSpec = new ModuleSpec(dep.namespace(), dep.name(), dep.version()); addDependenciesToAptPath(repositoryManager, depSpec, visited, progressListener); } }