73 lines
3 KiB
Groovy
73 lines
3 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:3.5'
|
||
|
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:3.5'
|
||
|
mavenEmbedder "org.apache.maven:maven-embedder:${project.property('maven.version')}"
|
||
|
mavenEmbedder 'org.slf4j:slf4j-simple:1.7.5'
|
||
|
mavenEmbedder 'org.apache.maven.wagon:wagon-http:2.12:shaded'
|
||
|
mavenEmbedder 'org.apache.maven.wagon:wagon-provider-api:2.12'
|
||
|
mavenEmbedder 'org.eclipse.aether:aether-connector-basic:1.0.2.v20150114'
|
||
|
mavenEmbedder 'org.eclipse.aether:aether-transport-wagon:1.0.2.v20150114'
|
||
|
}
|
||
|
|
||
|
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:3.5: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)
|