@@ -28,34 +28,33 @@ import org.jetbrains.jps.model.library.JpsMavenRepositoryLibraryDescriptor
28
28
29
29
class UtProjectModelModifier (val project : Project ) : IdeaProjectModelModifier(project) {
30
30
override fun addExternalLibraryDependency (
31
- modules : Collection <Module ? >,
31
+ modules : Collection <Module >,
32
32
descriptor : ExternalLibraryDescriptor ,
33
33
scope : DependencyScope
34
34
): Promise <Void > {
35
35
val defaultRoots = descriptor.libraryClassesRoots
36
- val classesRoots: List <String ?>
37
- val firstModule = ContainerUtil .getFirstItem(modules)
38
- classesRoots = if (defaultRoots.isNotEmpty()) {
39
- LocateLibraryDialog (firstModule!! , defaultRoots, descriptor.presentableName).showAndGetResult()
36
+ val firstModule = ContainerUtil .getFirstItem(modules) ? : return rejectedPromise()
37
+ val classesRoots = if (defaultRoots.isNotEmpty()) {
38
+ LocateLibraryDialog (
39
+ firstModule,
40
+ defaultRoots,
41
+ descriptor.presentableName
42
+ ).showAndGetResult()
40
43
} else {
41
- val version = descriptor.preferredVersion
42
- val mavenCoordinates = descriptor.libraryGroupId + " :" +
43
- descriptor.libraryArtifactId + " :" +
44
- (version ? : RepositoryLibraryDescription .ReleaseVersionId )
45
-
46
- val libraryProperties = RepositoryLibraryProperties (JpsMavenRepositoryLibraryDescriptor (mavenCoordinates))
44
+ val libraryProperties = RepositoryLibraryProperties (JpsMavenRepositoryLibraryDescriptor (descriptor.mavenCoordinates()))
47
45
val roots = JarRepositoryManager .loadDependenciesModal(
48
46
project,
49
47
libraryProperties,
50
- false ,
51
- false ,
52
- null ,
53
- null
48
+ /* loadSources = */ false ,
49
+ /* loadJavadoc = */ false ,
50
+ /* copyTo = */ null ,
51
+ /* repositories = */ null
54
52
)
55
53
if (roots.isEmpty()) {
56
54
@Suppress(" SpellCheckingInspection" )
57
55
Messages .showErrorDialog(
58
- project, JavaUiBundle .message(" dialog.mesage.0.was.not.loaded" , descriptor.presentableName),
56
+ project,
57
+ JavaUiBundle .message(" dialog.mesage.0.was.not.loaded" , descriptor.presentableName),
59
58
JavaUiBundle .message(" dialog.title.failed.to.download.library" )
60
59
)
61
60
return rejectedPromise()
@@ -73,7 +72,7 @@ class UtProjectModelModifier(val project: Project) : IdeaProjectModelModifier(pr
73
72
val libraryName = if (classesRoots.size > 1 ) descriptor.presentableName else null
74
73
val urls = OrderEntryFix .refreshAndConvertToUrls(classesRoots)
75
74
if (modules.size == 1 ) {
76
- ModuleRootModificationUtil .addModuleLibrary(firstModule!! , libraryName, urls, emptyList(), scope)
75
+ ModuleRootModificationUtil .addModuleLibrary(firstModule, libraryName, urls, emptyList(), scope)
77
76
} else {
78
77
WriteAction .run<RuntimeException > {
79
78
val library =
@@ -86,11 +85,15 @@ class UtProjectModelModifier(val project: Project) : IdeaProjectModelModifier(pr
86
85
}
87
86
model.commit()
88
87
for (module in modules) {
89
- ModuleRootModificationUtil .addDependency(module!! , library, scope, false )
88
+ ModuleRootModificationUtil .addDependency(module, library, scope, false )
90
89
}
91
90
}
92
91
}
93
92
}
94
93
return resolvedPromise()
95
94
}
95
+
96
+ private fun ExternalLibraryDescriptor.mavenCoordinates () : String {
97
+ return " $libraryGroupId :$libraryArtifactId :${preferredVersion ? : RepositoryLibraryDescription .ReleaseVersionId } "
98
+ }
96
99
}
0 commit comments