| package org.jetbrains |
| |
| import org.gradle.api.Project |
| import org.gradle.api.artifacts.ModuleVersionIdentifier |
| import org.gradle.api.artifacts.ProjectDependency |
| import org.gradle.api.artifacts.SelfResolvingDependency |
| import org.gradle.api.publish.internal.ProjectDependencyPublicationResolver |
| import org.gradle.api.publish.maven.MavenPom |
| import org.gradle.api.publish.maven.MavenPublication |
| |
| static void configure(MavenPublication publication, Project project) { |
| publication.artifact(project.tasks.shadowJar) |
| |
| publication.pom { MavenPom pom -> |
| pom.withXml { xml -> |
| def dependenciesNode = xml.asNode().appendNode('dependencies') |
| |
| project.configurations.shadow.allDependencies.each { |
| //if (! (it instanceof SelfResolvingDependency)) { |
| if (it instanceof ProjectDependency) { |
| def projectDependencyResolver = project.gradle.services.get(ProjectDependencyPublicationResolver) |
| ModuleVersionIdentifier identifier = projectDependencyResolver.resolve(it) |
| addDependency(dependenciesNode, identifier) |
| } else if (!(it instanceof SelfResolvingDependency)) { |
| addDependency(dependenciesNode, it) |
| } |
| |
| } |
| } |
| } |
| } |
| |
| private static void addDependency(Node dependenciesNode, dep) { |
| def dependencyNode = dependenciesNode.appendNode('dependency') |
| dependencyNode.appendNode('groupId', dep.group) |
| dependencyNode.appendNode('artifactId', dep.name) |
| dependencyNode.appendNode('version', dep.version) |
| dependencyNode.appendNode('scope', 'compile') |
| } |