private static void addDependencyOnDartPackagesLibrary( @NotNull final Module module, @NotNull final Library library) { final ModifiableRootModel modifiableModel = ModuleRootManager.getInstance(module).getModifiableModel(); try { for (final OrderEntry orderEntry : modifiableModel.getOrderEntries()) { if (orderEntry instanceof LibraryOrderEntry && LibraryTablesRegistrar.PROJECT_LEVEL.equals( ((LibraryOrderEntry) orderEntry).getLibraryLevel()) && DartPackagesLibraryType.DART_PACKAGES_LIBRARY_NAME.equals( ((LibraryOrderEntry) orderEntry).getLibraryName())) { return; // dependency already exists } } modifiableModel.addLibraryEntry(library); ApplicationManager.getApplication() .runWriteAction( new Runnable() { @Override public void run() { modifiableModel.commit(); } }); } finally { if (!modifiableModel.isDisposed()) { modifiableModel.dispose(); } } }