5 changed files with 2 additions and 80 deletions
@ -1,21 +0,0 @@ |
|||||||
import org.gradle.api.DefaultTask |
|
||||||
import org.gradle.api.GradleException |
|
||||||
import org.gradle.api.Plugin |
|
||||||
import org.gradle.api.Project |
|
||||||
import org.gradle.api.Task |
|
||||||
import org.gradle.api.plugins.* |
|
||||||
import org.gradle.api.tasks.* |
|
||||||
import org.gradle.api.tasks.TaskAction |
|
||||||
|
|
||||||
public class MavenBomPlugin implements Plugin<Project> { |
|
||||||
static String MAVEN_BOM_TASK_NAME = "mavenBom" |
|
||||||
|
|
||||||
public void apply(Project project) { |
|
||||||
project.plugins.apply(JavaPlugin) |
|
||||||
project.plugins.apply(MavenPlugin) |
|
||||||
|
|
||||||
project.group = project.rootProject.group |
|
||||||
project.task(MAVEN_BOM_TASK_NAME, type: MavenBomTask, group: 'Generate', description: 'Configures the pom as a Maven Build of Materials (BOM)') |
|
||||||
project.install.dependsOn project.mavenBom |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,55 +0,0 @@ |
|||||||
import groovy.xml.MarkupBuilder |
|
||||||
|
|
||||||
import org.gradle.api.DefaultTask |
|
||||||
import org.gradle.api.Project |
|
||||||
import org.gradle.api.tasks.* |
|
||||||
|
|
||||||
public class MavenBomTask extends DefaultTask { |
|
||||||
|
|
||||||
Set<Project> projects = [] |
|
||||||
|
|
||||||
File bomFile |
|
||||||
|
|
||||||
|
|
||||||
public MavenBomTask() { |
|
||||||
this.group = "Generate" |
|
||||||
this.description = "Generates a Maven Build of Materials (BOM). See http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies" |
|
||||||
this.projects = project.subprojects |
|
||||||
this.bomFile = project.file("${->project.buildDir}/maven-bom/${->project.name}-${->project.version}.txt") |
|
||||||
} |
|
||||||
|
|
||||||
@TaskAction |
|
||||||
public void configureBom() { |
|
||||||
project.configurations.archives.artifacts.clear() |
|
||||||
|
|
||||||
bomFile.parentFile.mkdirs() |
|
||||||
bomFile.write("Maven Build of Materials (BOM). See http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies") |
|
||||||
project.artifacts { |
|
||||||
// work around GRADLE-2406 by attaching text artifact |
|
||||||
archives(bomFile) |
|
||||||
} |
|
||||||
project.install { |
|
||||||
repositories.mavenInstaller { |
|
||||||
pom.whenConfigured { |
|
||||||
packaging = "pom" |
|
||||||
withXml { |
|
||||||
asNode().children().last() + { |
|
||||||
delegate.dependencyManagement { |
|
||||||
delegate.dependencies { |
|
||||||
projects.sort { dep -> "$dep.group:$dep.name" }.each { p -> |
|
||||||
|
|
||||||
delegate.dependency { |
|
||||||
delegate.groupId(p.group) |
|
||||||
delegate.artifactId(p.name) |
|
||||||
delegate.version(p.version) |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
Loading…
Reference in new issue