rpm/maven-plugin-rpm/build.gradle

75 lines
3.1 KiB
Groovy

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)