diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LibraryLicensesListGenerator.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LibraryLicensesListGenerator.groovy index 372bde4c487f..bf85b2a53498 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LibraryLicensesListGenerator.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/LibraryLicensesListGenerator.groovy @@ -16,7 +16,6 @@ package org.jetbrains.intellij.build.impl import com.google.gson.GsonBuilder -import com.intellij.util.containers.ContainerUtil import groovy.text.SimpleTemplateEngine import groovy.transform.CompileStatic import org.jetbrains.intellij.build.BuildMessages @@ -60,9 +59,8 @@ class LibraryLicensesListGenerator { Map usedLibraries = [:] usedModules.each { JpsModule module -> JpsJavaExtensionService.dependencies(module).includedIn(JpsJavaClasspathKind.PRODUCTION_RUNTIME).getLibraries().each { item -> - getLibraryNames(item).forEach { String name -> - usedLibraries[name] = module.name - } + def libraryName = getLibraryName(item) + usedLibraries[libraryName] = module.name } } @@ -82,12 +80,13 @@ class LibraryLicensesListGenerator { return licenses } - static List getLibraryNames(JpsLibrary lib) { + static String getLibraryName(JpsLibrary lib) { def name = lib.name if (name.startsWith("#")) { - return ContainerUtil.map(lib.getFiles(JpsOrderRootType.COMPILED), {f->f.getName()}) + //unnamed module libraries in IntelliJ project may have only one root + return lib.getFiles(JpsOrderRootType.COMPILED).first().name } - return Collections.singletonList(name) + return name } void generateHtml(String filePath) { diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MavenArtifactsBuilder.groovy b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MavenArtifactsBuilder.groovy index c7818865a6e6..731ca8287c67 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MavenArtifactsBuilder.groovy +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/MavenArtifactsBuilder.groovy @@ -245,10 +245,7 @@ class MavenArtifactsBuilder { dependencies << createArtifactDependencyByLibrary(typed.properties.data, scope) } else if (!isOptionalDependency(library)) { - List names = LibraryLicensesListGenerator.getLibraryNames(library) - for (n in names) { - buildContext.messages.warning(" module '$module.name' depends on non-maven library $n") - } + buildContext.messages.warning(" module '$module.name' depends on non-maven library ${LibraryLicensesListGenerator.getLibraryName(library)}") mavenizable = false } } diff --git a/platform/build-scripts/testFramework/src/org/jetbrains/intellij/build/LibraryLicensesTester.kt b/platform/build-scripts/testFramework/src/org/jetbrains/intellij/build/LibraryLicensesTester.kt index 09886c7c1756..141c72284326 100644 --- a/platform/build-scripts/testFramework/src/org/jetbrains/intellij/build/LibraryLicensesTester.kt +++ b/platform/build-scripts/testFramework/src/org/jetbrains/intellij/build/LibraryLicensesTester.kt @@ -24,15 +24,14 @@ class LibraryLicensesTester(private val project: JpsProject, private val license val librariesWithLicenses = licenses.flatMapTo(THashSet()) { it.libraryNames } for ((jpsLibrary, jpsModule) in libraries) { - for (libName in LibraryLicensesListGenerator.getLibraryNames(jpsLibrary)) { - if (libName !in librariesWithLicenses) { - collector.addError(AssertionFailedError(""" - |License isn't specified for '$libName' library (used in module '${jpsModule.name}' in ${jpsModule.contentRootsList.urls}) + val libraryName = LibraryLicensesListGenerator.getLibraryName(jpsLibrary) + if (libraryName !in librariesWithLicenses) { + collector.addError(AssertionFailedError(""" + |License isn't specified for '$libraryName' library (used in module '${jpsModule.name}' in ${jpsModule.contentRootsList.urls}) |If a library is packaged into IDEA installation information about its license must be added into one of *LibraryLicenses.groovy files |If a library is used in tests only change its scope to 'Test' |If a library is used for compilation only change its scope to 'Provided' """.trimMargin())) - } } } }