了解一下:一款好用的 Maven Library 发布插件

2,362 阅读1分钟

GitHub: gradle-publish-plugin

Gradle Publish Plugin

A flex gradle plugin for publish your library to maven repository become easy.

gradle-publish-plugin.png

Feature

  • support publish multi-library, such as Java、Android、Kotlin
  • support for api / implementation dependencies in new Gradle
  • supports also @aar and transitive: false.
  • generate Kotlin doc with dokka
  • support upload sources Jar (configurable, default true)
  • sign a library including sources, Javadoc, and a customized POM (configurable, default false, and require Gradle Version >= 4.8)

Usage

for Gradle version >= 2.1:

    plugins {
      id "com.whl.gradle-publish-plugin" version "0.1.16-SNAPSHOT"
    }

for Gradle version < 2.1 or where dynamic configuration is required:

    buildscript {
      repositories {
        maven {
          url "https://plugins.gradle.org/m2/"
        }
      }
      dependencies {
        classpath "com.whl:gradle-publish-plugin:0.1.16-SNAPSHOT"
      }
    }

    apply plugin: "com.whl.gradle-publish-plugin"

Also see it in Gradle plugins

"com.whl.gradle-publish-plugin" should be after apply "java-library" or "com.android.library"

then, configuration in your build.gradle,such as:

simple example:

    group 'com.example'
    version '1.0-SNAPSHOT'

    gradlePublish {

        releaseRepository {
            url = "http://your repository.com/nexus/content/repositories/releases"
            userName = "your release account"
            password = "your release account"
        }

    }

complete example:

    group 'com.example'
    version '1.0-SNAPSHOT'

    gradlePublish {

        sourceJarEnabled = true
        javaDocEnabled = true
        signEnabled = false

        releaseRepository {
            url = "http://your repository.com/nexus/content/repositories/releases"
            userName = "your release account"
            password = "your release account"
        }

        snapshotRepository {
            url = "http://your repository.com/nexus/content/repositories/snapshots"
            userName = "your snapshot account"
            password = "your snapshot account"
        }

    }

last, execute ./gradlew publish task to publish your library to specified maven repository