void (Library.ModifiableModel library, OrderRootType type, MavenArtifact artifact, MavenExtraArtifactType artifactType, MavenProject project, boolean clearAll) { String classifier = null; String extension = null; if (artifactType != null) { Pair<String, String> result = project.getClassifierAndExtension(artifact, artifactType); classifier = result.first; extension = result.second; } String newPath = artifact.getPathForExtraArtifact(classifier, extension); String newUrl = VirtualFileManager.constructUrl(JarFileSystem.PROTOCOL, newPath) + JarFileSystem.JAR_SEPARATOR; boolean urlExists = false; for (String url : library.getUrls(type)) { if (newUrl.equals(url)) { urlExists = true; continue; } if (clearAll || (isRepositoryUrl(artifact, url) && !url.startsWith(newUrl))) { library.removeRoot(url, type); } } if (!urlExists) { library.addRoot(newUrl, type); } }