diff --git a/libraries/tools/gradle-tools/pluginMarkers.gradle b/libraries/tools/gradle-tools/pluginMarkers.gradle new file mode 100644 index 00000000000..cec3d1a62bb --- /dev/null +++ b/libraries/tools/gradle-tools/pluginMarkers.gradle @@ -0,0 +1,47 @@ +ext.pluginMarkerProject = { String pluginProjectId -> + evaluationDependsOn(":$pluginProjectId") + + def pluginProject = findProject(":$pluginProjectId") + + repositories.addAll(pluginProject.repositories.toList()) + + apply plugin: 'java' + + dependencies { + compile pluginProject + } + + configurations.archives.artifacts.clear() + + configurePublishing(project) + + task emptyJar(type: Jar) + + version = project.version + (findProperty('marker_version_suffix') ?: "") + + for (pluginId in pluginProject.pluginBundle.plugins*.id) { + def artifactName = "${pluginId}.gradle.plugin" + + artifacts { + ['', 'javadoc', 'sources'].forEach { theClassifier -> + archives(emptyJar) { + group = pluginId + name = artifactName + classifier theClassifier + } + } + } + + def setUpSeparateArtifact = { + addFilter(pluginId) { artifact, file -> artifact.name == artifactName } + def pom = pom(pluginId) + pom.groupId = pluginId + pom.artifactId = "${pluginId}.gradle.plugin" + } + + configure(uploadArchives.repositories.mavenDeployer, setUpSeparateArtifact) + configure(install.repositories.mavenInstaller, setUpSeparateArtifact) + } + + publish.dependsOn uploadArchives +} \ No newline at end of file diff --git a/libraries/tools/gradle-tools/settings.gradle b/libraries/tools/gradle-tools/settings.gradle index 80fd68d4cda..fac76c79862 100644 --- a/libraries/tools/gradle-tools/settings.gradle +++ b/libraries/tools/gradle-tools/settings.gradle @@ -4,7 +4,12 @@ include ':kotlin-gradle-plugin-api', ':kotlin-allopen', ':kotlin-noarg', ':kotlin-sam-with-receiver', - ':kotlin-gradle-subplugin-example' + ':kotlin-gradle-subplugin-example', + + // plugin markers: + ':kotlin-gradle-plugin:plugin-marker', + ':kotlin-allopen:plugin-marker', + ':kotlin-noarg:plugin-marker' project(':kotlin-gradle-plugin-api').projectDir = file("../kotlin-gradle-plugin-api") project(':kotlin-gradle-plugin').projectDir = file("../kotlin-gradle-plugin") @@ -12,4 +17,10 @@ project(':kotlin-gradle-plugin-integration-tests').projectDir = file("../kotlin- project(':kotlin-allopen').projectDir = file("../kotlin-allopen") project(':kotlin-noarg').projectDir = file("../kotlin-noarg") project(':kotlin-sam-with-receiver').projectDir = file("../kotlin-sam-with-receiver") -project(':kotlin-gradle-subplugin-example').projectDir = file("../../examples/kotlin-gradle-subplugin-example") \ No newline at end of file +project(':kotlin-gradle-subplugin-example').projectDir = file("../../examples/kotlin-gradle-subplugin-example") + +// plugin markers: +project(':kotlin-gradle-plugin:plugin-marker').projectDir = file("../kotlin-gradle-plugin/plugin-marker") +project(':kotlin-allopen:plugin-marker').projectDir = file("../kotlin-allopen/plugin-marker") +project(':kotlin-noarg:plugin-marker').projectDir = file("../kotlin-noarg/plugin-marker") + diff --git a/libraries/tools/kotlin-allopen/plugin-marker/build.gradle b/libraries/tools/kotlin-allopen/plugin-marker/build.gradle new file mode 100644 index 00000000000..64c6fe30717 --- /dev/null +++ b/libraries/tools/kotlin-allopen/plugin-marker/build.gradle @@ -0,0 +1,3 @@ +apply from: "$rootDir/pluginMarkers.gradle" + +pluginMarkerProject('kotlin-allopen') diff --git a/libraries/tools/kotlin-gradle-plugin/plugin-marker/build.gradle b/libraries/tools/kotlin-gradle-plugin/plugin-marker/build.gradle new file mode 100644 index 00000000000..7dc556f296b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/plugin-marker/build.gradle @@ -0,0 +1,3 @@ +apply from: "$rootDir/pluginMarkers.gradle" + +pluginMarkerProject('kotlin-gradle-plugin') diff --git a/libraries/tools/kotlin-noarg/plugin-marker/build.gradle b/libraries/tools/kotlin-noarg/plugin-marker/build.gradle new file mode 100644 index 00000000000..d9ec92aaaf5 --- /dev/null +++ b/libraries/tools/kotlin-noarg/plugin-marker/build.gradle @@ -0,0 +1,3 @@ +apply from: "$rootDir/pluginMarkers.gradle" + +pluginMarkerProject('kotlin-noarg')