Browse Source

修复发布中央仓库pom描述错误.

nieqiurong@163.com 7 years ago
parent
commit
cc2cc5e593

+ 1 - 1
build.gradle

@@ -66,7 +66,6 @@ buildscript {
 
 configure(subprojects) {
 	apply plugin: 'propdeps'
-	apply plugin: 'propdeps-maven'
 	apply plugin: 'propdeps-idea'
 	apply plugin: 'propdeps-eclipse'
 }
@@ -75,6 +74,7 @@ subprojects{
 
 	apply plugin: 'java'
 	apply plugin: 'signing'
+    apply plugin: 'maven-deploy'
 
 	sourceCompatibility = "${javaVersion}"
 	targetCompatibility = "${javaVersion}"

+ 11 - 0
buildSrc/build.gradle

@@ -0,0 +1,11 @@
+apply plugin: "groovy"
+
+/*
+    https://github.com/gradle/gradle/issues/867
+    https://github.com/spring-gradle-plugins/propdeps-plugin/commit/bd14013e6f0adba7908778349bb0a08b50212658
+ */
+dependencies {
+    compile gradleApi()
+    compile localGroovy()
+}
+

+ 41 - 0
buildSrc/src/main/groovy/com/baomidou/gradle/MavenDeployPlugin.groovy

@@ -0,0 +1,41 @@
+package com.baomidou.gradle
+
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.api.artifacts.maven.Conf2ScopeMappingContainer
+import org.gradle.api.artifacts.maven.MavenPom
+import org.gradle.api.artifacts.maven.PomFilterContainer
+import org.gradle.api.plugins.MavenPlugin
+import org.gradle.api.tasks.Upload
+
+class MavenDeployPlugin implements Plugin<Project> {
+
+    @Override
+    void apply(Project project) {
+        project.plugins.apply(MavenPlugin)
+        Conf2ScopeMappingContainer scopeMappings = project.conf2ScopeMappings
+        scopeMappings.addMapping(MavenPlugin.COMPILE_PRIORITY + 1,
+            project.configurations.getByName("provided"), Conf2ScopeMappingContainer.PROVIDED)
+        // Add a temporary new optional scope
+        scopeMappings.addMapping(org.gradle.api.plugins.MavenPlugin.COMPILE_PRIORITY + 2,
+            project.configurations.getByName("optional"), "optional")
+        // Add a hook to replace the optional scope
+        project.afterEvaluate {
+            project.tasks.withType(Upload).each { applyToUploadTask(project, it) }
+        }
+    }
+
+    private void applyToUploadTask(Project project, Upload upload) {
+        upload.repositories.withType(PomFilterContainer).each{ applyToPom(project, it) }
+    }
+
+    private void applyToPom(Project project, PomFilterContainer pomContainer) {
+        pomContainer.pom.whenConfigured { MavenPom pom ->
+            pom.dependencies.findAll{ it.scope == "optional" }.each {
+                it.scope = "compile"
+                it.optional = true
+            }
+        }
+    }
+
+}

+ 1 - 0
buildSrc/src/main/resources/META-INF/gradle-plugins/maven-deploy.properties

@@ -0,0 +1 @@
+implementation-class=com.baomidou.gradle.MavenDeployPlugin

+ 1 - 0
settings.gradle

@@ -4,4 +4,5 @@ include 'mybatis-plus-support'
 include 'mybatis-plus-core'
 include 'mybatis-plus-generate'
 include 'mybatis-plus-boot-starter'
+include 'buildSrc'