build scripts: honor exclusion of individual dependencies in pom.xml generated for published modules (IDEA-197426)

This commit is contained in:
nik
2018-12-06 09:58:01 +03:00
parent 4bcfbbfcdf
commit 3795119e21
@@ -2,6 +2,7 @@
package org.jetbrains.intellij.build.impl
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.codeStyle.NameUtil
import groovy.transform.CompileDynamic
import groovy.transform.CompileStatic
@@ -108,7 +109,12 @@ class MavenArtifactsBuilder {
if (dep.scope == DependencyScope.RUNTIME) {
dependency.scope = "runtime"
}
if (!dep.includeTransitiveDeps) {
if (dep.includeTransitiveDeps) {
dep.excludedDependencies.each {
dependency.addExclusion(new Exclusion(groupId: StringUtil.substringBefore(it, ":"), artifactId: StringUtil.substringAfter(it, ":")))
}
}
else {
dependency.addExclusion(new Exclusion(groupId: "*", artifactId: "*"))
}
dependency
@@ -210,7 +216,7 @@ class MavenArtifactsBuilder {
mavenizable = false
return
}
dependencies << new MavenArtifactDependency(depArtifact.coordinates, true, scope)
dependencies << new MavenArtifactDependency(depArtifact.coordinates, true, [], scope)
}
else if (dependency instanceof JpsLibraryDependency) {
def library = (dependency as JpsLibraryDependency).library
@@ -241,7 +247,7 @@ class MavenArtifactsBuilder {
private static MavenArtifactDependency createArtifactDependencyByLibrary(JpsMavenRepositoryLibraryDescriptor descriptor, DependencyScope scope) {
new MavenArtifactDependency(new MavenCoordinates(descriptor.groupId, descriptor.artifactId, descriptor.version),
descriptor.includeTransitiveDependencies, scope)
descriptor.includeTransitiveDependencies, descriptor.excludedDependencies, scope)
}
static Dependency createDependencyTagByLibrary(JpsMavenRepositoryLibraryDescriptor descriptor) {
@@ -279,6 +285,7 @@ class MavenArtifactsBuilder {
private static class MavenArtifactDependency {
MavenCoordinates coordinates
boolean includeTransitiveDeps
List<String> excludedDependencies
DependencyScope scope
}