2017-10-07 13:14:33 +02:00
|
|
|
configurations {
|
|
|
|
mavenEmbedder
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
compile project(':rpm-core')
|
|
|
|
compile "org.mvel:mvel2:${project.property('mvel.version')}"
|
|
|
|
compile "org.apache.ant:ant:${project.property('ant.version')}"
|
2018-08-16 22:26:47 +02:00
|
|
|
|
2017-10-07 13:14:33 +02:00
|
|
|
compileOnly "org.apache.maven:maven-core:${project.property('maven.version')}"
|
|
|
|
compileOnly "org.apache.maven:maven-plugin-api:${project.property('maven.version')}"
|
2018-08-16 22:26:47 +02:00
|
|
|
compileOnly "org.apache.maven.plugin-tools:maven-plugin-annotations:${project.property('maven-plugin-annotations.version')}"
|
|
|
|
|
2017-10-07 13:14:33 +02:00
|
|
|
testCompile "org.apache.maven:maven-core:${project.property('maven.version')}"
|
|
|
|
testCompile "org.apache.maven:maven-plugin-api:${project.property('maven.version')}"
|
2018-08-16 22:26:47 +02:00
|
|
|
testCompile "org.apache.maven.plugin-tools:maven-plugin-annotations:${project.property('maven-plugin-annotations.version')}"
|
|
|
|
|
2017-10-07 13:14:33 +02:00
|
|
|
mavenEmbedder "org.apache.maven:maven-embedder:${project.property('maven.version')}"
|
2018-08-16 22:26:47 +02:00
|
|
|
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"
|
2017-10-07 13:14:33 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
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",
|
2018-08-16 22:26:47 +02:00
|
|
|
"org.apache.maven.plugins:maven-plugin-plugin:${project.property('maven-plugin-plugin.version')}:descriptor"
|
2017-10-07 13:14:33 +02:00
|
|
|
]
|
|
|
|
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)
|