Gradle публикует собственный плагин и применяет его в потребительском проекте - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть следующий плагин, который я хочу опубликовать позже в репо

build.gradle плагины { id 'maven-publish' }

group 'com.mycompany.gradle.plugins'
version '1.0.0'

class GreetingPlugin implements Plugin<Project> {
  void apply(Project project) {
      project.task('hello') {
        doLast {
          println 'Hello from the GreetingPlugin'
        }
      }
  }
}

apply plugin: GreetingPlugin


publishing {
  publications {
    changes(MavenPublication) {
        groupId project.group
        artifactId project.name
        version project.version
    }
}
repositories {
  ...myRepos...
}

К настоящему времени я публикую это на локальном через

gradlew publishToMavenLocal

Однако, я думаю, что исходный код неправильно экспортирован.

Обычно в обычных публикациях Java я использую from components.java, чтобы указать, где находится мой исходный код.

изменения (MavenPublication) { groupId project.group artifactId project.name версия проекта. версия из компонент .java }

Я ожидал, что при определении моего пользовательского плагина непосредственно в build.gradle мне не нужно было указывать свойство from.

  1. Как я могу экспортировать этот "GreetingPlugin"?

В моем другом проекте у меня есть:

Потребительский проект build.gradle

buildscript {

  repositories {
    mavenLocal()
    mavenCentral()
  }
  dependencies {
    classpath("com.mycompany.gradle.plugins:changes:1.0.0")
  }
}

plugins {
  id 'GreetingPlugin' version '1.0.0'
}

Что выдает Ошибка :

Плагин [id: 'GreetingPlugin', версия: '1.0.0'] не найден ни в одном из следующих источников:

  • Плагины Gradle Core (не плагины ядра, пожалуйста, смотрите https://docs.gradle.org/4.10.1/userguide/standard_plugins.html для доступных плагинов ядра)
  • Хранилища плагинов (не удалось разрешить артефакт плагина 'GreetingPlugin: GreetingPlugin.gradle.plugin: 1.0.0') Поиск в следующих репозиториях: Центральный плагин Gradle

-

  1. Разве он не должен искать в моем mavenLocal ()?
...