Как мне опубликовать плагин Grails 3 для моего локального репозитория Nexus?

Бег grails publish-plugin похоже, ничего не делает, и единственная документация, которую я смог найти, касалась публикации в bintray.

[редактировать:]

Я могу опубликовать плагин через gradle publish, но задавался вопросом, есть ли способ Grails-Y, чтобы сделать это, и интересно, что grails publish-plugin на самом деле делает:/

3 ответа

Решение

Я выяснил это с помощью Ryan V адресу http://rvanderwerf.blogspot.com/2015/07/how-to-publish-grails-3-plugin.html который пишет, что существует множество зависимостей при весенней загрузке, которые не имеют версий в них, и это приводит к тому, что gradle начинает волноваться. Чтобы обойти это, удалите все зависимости в pom, которые не имеют версий:

publishing {
    publications {
        mavenJar(MavenPublication) {
            pom.withXml {
                def pomNode = asNode()
                pomNode.dependencyManagement.replaceNode {}

                // simply remove dependencies without a version
                // version-less dependencies are handled with dependencyManagement
                // see https://github.com/spring-gradle-plugins/dependency-management-plugin/issues/8 for more complete solutions
                pomNode.dependencies.dependency.findAll {
                    it.version.text().isEmpty()
                }.each {
                    it.replaceNode {}
                }
            }
            from components.java
        }
    }
    repositories {
        maven {
            credentials {
                username "username"
                password "password"
            }
            url "http://localhost/repo"
        }
    }
}

тогда вы можете использовать grails publish-plugin или же gradle publish опубликовать свой плагин

связанный с этим вопрос: Grails 3 - Как опубликовать в Artifactory

В Grails 3.0.11 я использую цель gradle publishToMavenLocal для своей локальной разработки. Существует также еще одна цель publishMavenPublicationToMavenRepository. Это похоже на плагин Gradle:

apply plugin: 'maven-publish'

Кажется, в стандартном плагине build.gradle.

(Правка: добавление заметок по использованию локального maven).

Перечитав ваш вопрос и комментарий ниже, я не думаю, что это то, что вы ищете. Похоже, вы хотите нормальную публикацию в хранилище в вашей системе. publishMavenPublicationToMavenRepository может справиться с этим. Выше я описал использование локального кэша Maven для хранения снимка плагина, который вы можете использовать на своем компьютере в приложении.

Это работает для меня при разработке плагина, используемого в моем приложении.

Я не создал локальный репозиторий. Плагин Gradle выше (maven-publish) имеет задачу publishToMavenLocal это опубликует плагин Grails в локальном кэше maven для локальной разработки.

Он хранит файл.zip плагина в каталоге кэша.m2:

C:\Users\xyz\.m2\repository\org\whatever\plugins\pluginName\0.3-SNAPSHOT

Затем вы можете использовать плагин в приложении Grails на вашем компьютере.

В BuildConfig.groovy

grails.project.dependency.distribution = {
    remoteRepository(id: '<repo name>',    url: '<url to your nexus repo>')
}

Затем:

Чистый Грааль

Grails компилировать

Grails Maven-deploy --repository= имя репозитория

Другие вопросы по тегам