blob: e5635ec0f2f7c53e1b29161e6381611998a56a3d [file] [log] [blame]
apply plugin: 'kotlin'
apply plugin: 'maven'
apply from: rootProject.file('gradle/compile-options.gradle')
ext.configureKotlin(org.jetbrains.kotlin.gradle.tasks.KotlinCompile)
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile project(":atomicfu-transformer")
compile "org.apache.maven:maven-core:$maven_version"
compile "org.apache.maven:maven-plugin-api:$maven_version"
compile 'org.apache.maven.plugin-tools:maven-plugin-annotations:3.5'
}
def pomFile = file("$buildDir/pom.xml")
def outputDir = compileKotlin.destinationDir
evaluationDependsOn(':atomicfu-transformer')
task generatePomFile(dependsOn: [compileKotlin, ':atomicfu-transformer:publishToMavenLocal']) {
def buildDir = project.buildDir // because Maven model also has "project"
outputs.file(pomFile)
doLast {
install.repositories.mavenInstaller.pom.with {
groupId = project.group
artifactId = project.name
version = project.version
packaging = 'maven-plugin'
withXml {
asNode().with {
appendNode('build').with {
appendNode('directory', buildDir)
appendNode('outputDirectory', outputDir)
}
appendNode('properties').with {
appendNode('project.build.sourceEncoding', 'UTF-8')
}
appendNode('repositories').with {
appendNode('repository').with {
appendNode('id', 'kotlin-eap')
appendNode('url', 'https://kotlin.bintray.com/kotlin-eap')
}
}
}
}
}
install.repositories.mavenInstaller.pom.writeTo(pomFile)
assert pomFile.file, "$pomFile: was not generated"
logger.info("POM is generated in $pomFile")
}
}
// runs the plugin description generator
task generatePluginDescriptor(type: Exec, dependsOn: generatePomFile) {
def pluginDescriptorFile = new File(outputDir, 'META-INF/maven/plugin.xml')
workingDir projectDir
commandLine 'sh', './mvnw',
'--errors',
'--batch-mode',
'--file', pomFile,
'org.apache.maven.plugins:maven-plugin-plugin:3.5.1:descriptor'
doLast {
assert pluginDescriptorFile.file, "$pluginDescriptorFile: was not generated"
logger.info("Plugin descriptor is generated in $pluginDescriptorFile")
}
}
project.jar.dependsOn(generatePluginDescriptor)