blob: 5756df9ccd92f0b8f86c3a31a9728b6fe1cb70fc [file] [log] [blame]
/*
* Copyright 2017-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
apply plugin: 'kotlin'
apply plugin: 'maven-publish'
apply from: rootProject.file('gradle/compile-options.gradle')
ext.configureKotlin()
dependencies {
api "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
api project(":atomicfu-transformer")
api "org.apache.maven:maven-core:$maven_version"
api "org.apache.maven:maven-plugin-api:$maven_version"
api 'org.apache.maven.plugin-tools:maven-plugin-annotations:3.5'
}
def outputDir = compileKotlin.destinationDirectory
publishing.publications {
maven(MavenPublication) {
MavenPomConfiguration.configureMavenPluginPomAttributes(pom, project, outputDir.get().getAsFile().path)
}
}
String mavenUserHome = System.getProperty("maven.user.home")
String mavenRepoLocal = System.getProperty("maven.repo.local")
def pomFile = tasks.named("generatePomFileForMavenPublication", GenerateMavenPom).map { it.destination }.get()
// runs the plugin description generator
task generatePluginDescriptor(type: Exec, dependsOn: [generatePomFileForMavenPublication, ':atomicfu-transformer:publishToMavenLocal']) {
def pluginDescriptorFile = outputDir.file('META-INF/maven/plugin.xml')
workingDir projectDir
boolean isWindows = System.getProperty("os.name").toLowerCase().indexOf("windows") >= 0
def args = isWindows ? ['cmd', '/c', 'mvnw.cmd'] : ['sh', './mvnw']
if (mavenUserHome != null) args.add("-Dmaven.user.home=${new File(mavenUserHome).getAbsolutePath()}")
if (mavenRepoLocal != null) args.add("-Dmaven.repo.local=${new File(mavenRepoLocal).getAbsolutePath()}")
args.addAll([
'--settings', './settings.xml',
'--errors',
'--batch-mode',
'--file', pomFile.toString(),
'org.apache.maven.plugins:maven-plugin-plugin:3.5.1:descriptor'
])
commandLine args
doLast {
def descriptorFile = pluginDescriptorFile.get().getAsFile()
assert descriptorFile, "$descriptorFile: was not generated"
logger.info("Plugin descriptor is generated in $descriptorFile")
}
}
project.jar.dependsOn(generatePluginDescriptor)