configurations { mavenEmbedder } dependencies { compile project(':rpm-core') compile "org.mvel:mvel2:${project.property('mvel.version')}" compile "org.apache.ant:ant:${project.property('ant.version')}" compileOnly "org.apache.maven:maven-core:${project.property('maven.version')}" compileOnly "org.apache.maven:maven-plugin-api:${project.property('maven.version')}" compileOnly "org.apache.maven.plugin-tools:maven-plugin-annotations:${project.property('maven-plugin-annotations.version')}" testCompile "org.apache.maven:maven-core:${project.property('maven.version')}" testCompile "org.apache.maven:maven-plugin-api:${project.property('maven.version')}" testCompile "org.apache.maven.plugin-tools:maven-plugin-annotations:${project.property('maven-plugin-annotations.version')}" mavenEmbedder "org.apache.maven:maven-embedder:${project.property('maven.version')}" mavenEmbedder "org.slf4j:slf4j-simple:1.7.25" mavenEmbedder "org.apache.maven.wagon:wagon-http:3.1.0:shaded" mavenEmbedder "org.apache.maven.wagon:wagon-provider-api:3.1.0" mavenEmbedder "org.eclipse.aether:aether-connector-basic:1.1.0" mavenEmbedder "org.eclipse.aether:aether-transport-wagon:1.1.0" } test { testLogging { showStandardStreams = false exceptionFormat = 'full' } systemProperty 'project.build.testOutputDirectory', project.buildDir.path + "/resources/test" } install.repositories.mavenInstaller.pom.with { groupId = project.group artifactId = project.name version = project.version packaging = 'maven-plugin' } task generatePluginDescriptor(type: JavaExec, dependsOn: compileJava) { def pomFile = file("$buildDir/pom.xml") def pluginDescriptorFile = new File(file(project.compileJava.destinationDir), 'META-INF/maven/plugin.xml') def directory = buildDir.canonicalPath def outputDirectory = compileJava.destinationDir.canonicalPath inputs.files project.compileJava.outputs.files outputs.file pluginDescriptorFile classpath = configurations.mavenEmbedder main = 'org.apache.maven.cli.MavenCli' systemProperties['maven.multiModuleProjectDirectory'] = projectDir args = [ '--update-snapshots', '--errors', '--batch-mode', '--settings', '../config/maven/repo-settings.xml', '--file', "${buildDir}/pom.xml", "org.apache.maven.plugins:maven-plugin-plugin:${project.property('maven-plugin-plugin.version')}:descriptor" ] doFirst { install.repositories.mavenInstaller.pom.withXml { asNode().appendNode('build').with { appendNode('directory', directory) appendNode('outputDirectory', outputDirectory) } }.writeTo(pomFile) assert pomFile.file, "${pomFile.canonicalPath}: was not generated" logger.info("POM is generated in ${pomFile.canonicalPath}") } doLast { assert pluginDescriptorFile.file, "${pluginDescriptorFile.canonicalPath}: was not generated" logger.info("Maven plugin descriptor generated in ${pluginDescriptorFile.canonicalPath}") } } project.jar.dependsOn(generatePluginDescriptor)